An Actor is a specialized service that is much more granular in intent than the typical services that we build. The Actor programming model ensures that individual entities in your solution are highly cohesive and decoupled. An Actor is designed to work within a set of constraints:
- The various Actors of an application can only interact through asynchronous message passing. The messages that are exchanged between Actors should be immutable.
- An Actor can function within the boundary of domain that it is designed for. For instance, a shopping cart actor cannot implement or expose functionality of a product listing Actor.
- An Actor can only change its state when it receives and processes a message.
- An Actor should be single-threaded and it should process only one message at a time. Another message should be picked up by the Actor only when the Actor operation has...