There is one other benefit worth mentioning to Orleans, the primary one in my mind. Statefulness. In many systems, services scale by being stateless. They remember nothing from before. They have to get the data shipped in on every request. That puts all the scalability pressure on the data storage. For certain types of use cases, updates come in too fast to make statelessness and "data shipping" work. Those cases have to use a stateful workflow where the data remains loaded and ready for computation. However, stateful services are more difficult to scale than stateless -- you can't just deploy more copies, you have to keep track of which node owns which states. That's where Orleans comes in. It handles the scaling for you while letting you take advantage of stateful processing.
There is one other benefit worth mentioning to Orleans, the primary one in my mind. Statefulness. In many systems, services scale by being stateless. They remember nothing from before. They have to get the data shipped in on every request. That puts all the scalability pressure on the data storage. For certain types of use cases, updates come in too fast to make statelessness and "data shipping" work. Those cases have to use a stateful workflow where the data remains loaded and ready for computation. However, stateful services are more difficult to scale than stateless -- you can't just deploy more copies, you have to keep track of which node owns which states. That's where Orleans comes in. It handles the scaling for you while letting you take advantage of stateful processing.
All that sounds awesome! I'm hoping I can get into more information like that as I continue exploring (and posting hopefully :D).
For sure. Thanks for the post!