Hi, I have been chatting with couple of LLMs recently and all of them seem to recommend design trading orders and positions as grains using single responsibility principle as an argument, so when you open position in stocks or crypto, each position is a separate grain that can track its own profit, security price, etc.
In your application, I see that grains have minimal use, e.g. AlsoHostGrain and AlgoManagerGrain. The rest is pretty much regular .NET class, so it looks like Orleans is used here rather as a helper than an actual framework basis.
Question
Was there any particular reason not to use grains more intensively or was it just for simplicity of implementation? If you had more time to work on this project, would you consider converting some of the classes to grains to improve concurrency and better logic isolation?
Hi, I have been chatting with couple of LLMs recently and all of them seem to recommend design trading orders and positions as grains using single responsibility principle as an argument, so when you open position in stocks or crypto, each position is a separate grain that can track its own profit, security price, etc.
In your application, I see that grains have minimal use, e.g.
AlsoHostGrainandAlgoManagerGrain. The rest is pretty much regular .NET class, so it looks like Orleans is used here rather as a helper than an actual framework basis.Question
Was there any particular reason not to use grains more intensively or was it just for simplicity of implementation? If you had more time to work on this project, would you consider converting some of the classes to grains to improve concurrency and better logic isolation?