In this repository, I have started an experimentation with Orleans as an Actor Model.
I tested the following features - Microsoft Orleans documentation 📚
- Persistence
- Reminder
- Startup tasks
- Transactions - Reentrancy or Interleaving for the AccountGrain, Stateless worker for the MoneyTransferGrain
- Observers
- Streaming
- Unit testing
- Dashboard 👤OrleansContrib
- Code sample browser 📚
- SignalR.Orleans 👤OrleansContrib
- Articles, videos and samples 📓Awesome Software Architecture
- Introduction to Actor-based development with Orleans 📽️1hour - Chris Klug - NDC Oslo 2023
- All in all, I have mixed feelings about Orleans. I believe it is well-suited for games and other scenarios where Actors/Grains can participate as business logic.
- The architecture provides an efficient way of scaling the computation power by adding more Servers -> Silos -> Grains.
- No need to worry about database persistence and caching since Orleans handles it out of the box.
- However, I am not entirely convinced about the use of Reminder and Streams. While they are nice to have, I would prefer to use the official packages for Azure ServiceBus or Amazon SQS.