O'Reilly logo

Designing Reactive Systems by Hugh McKee

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 3. Actors and Scaling Large Systems

One actor is no actor. Actors come in systems.

Carl Hewitt

As discussed previously, actors can create other actors in a supervisor-worker relationship, where the supervisor delegates tasks to the workers. In the previous example, the supervisor delegated specific subtasks to the workers. Another common pattern provides a level of elasticity as more work requests arrive, and then the supervisor delegates the tasks to idle workers. If there are no idle workers, then the supervisor adds more workers (see Figure 3-1).

Figure 3-1. Supervisor adds more worker actors as the processing load increases

How the supervisor decides to add workers is up to the supervisor. Supervisors typically have some limit as to how many workers they will add, as well as a built-in way for shedding excess idle workers (see Figure 3-2).

Figure 3-2. The supervisor sheds workers as the load decreases

Here again the scheduled timeout mechanism comes into play. Each of the workers could schedule an idle timeout message to be sent at some point in the future. Every time a worker gets a request to perform a task, it resets the timeout. If no tasks are sent to a worker, and it receives the timeout message that tells the worker that it has been idle for too long, it triggers ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required