Process Manager

Process Manager coordinates and routes messages between aggregates within a Bounded Context (BC). It is a central processing unit which maintains a state of a business process and determines the next processing step based on intermediate results.

Event and Command Handlers are invoked by the ProcessManagerRepository which manages instances of a Process Manager class.

“Process Manager” pattern was first defined and brought to the common vocabulary by Kyle Brown and Bobby Woolf under the guidance of Martin Fowler in the book “Enterprise Integration Patterns”.

For more information on Process Managers (and the important difference between Process Manager and Saga), please see:

Use a Command Router to create and post command(s) in response to a command received by the Process Manager.
The routed commands are created on behalf of the actor of the original command. That is, the actor and zoneOffset fields of created CommandContext instances will be the same as in the incoming command.