Distributed Actor Frameworks bring the power of message brokers to the Actor Programming model
Distributed Actor Frameworks combine the power of message brokers and the actor programming model into a single framework.
Think Akka for Java/Scale, Orleans for .NET, and Erlang OTP.
The Actor Model is a programming model for concurrency in a single process. In simple terms, the actor model encourages us to think in terms of actors, which are cohesive blocks of computation, to organize and execute business logic.
Actors are triggered when they receive a message. All business logic necessary to complete the task - taking decisions, manipulating data, contacting other actors- is enclosed within the actor.
An actor may seem no different from a typical class or method.
But since it acts as a computational entity triggered by messages, we can handle an increased processing load by spinning up more actor instances. This is especially valuable for scaling computation heavy tasks.
Actors use the same message-passing mechanism, irrespective of whether two actors are running in the same machine or different nodes. So we can transparently add more computational nodes to the network in real-time.
Because message brokers can improve systems' reliability and evolvability, it is a good idea to adopt a message broker to transfer messages between actors.
Distributed actor frameworks transfer messages to actors through message brokers. They also define a structure to organize business logic within an actor model. They are designed to run multiple actor instances that consume these messages and spin up more under load.