Simple Sagas is designed to take advantage of the horizontally scalable deployment model of Kafka Streams.
A typical Simple Sagas implementation will consist of of multiple instances of:
- A saga coordinator application.
- Action processor applications.
- Simple sourcing applications (if using Simple sourcing for event sourcing).
As these are all KStream applications, they can be scaled horizontally by simply starting additional instances. All inter-process communication happens via Kafka.
Sagas are expressible as a directed acyclical graph (DAG) of saga actions. Clients can use the saga builder DSL to build the saga.
Sagas can be executed by:
- Publishing a request to the saga request topic, or
- Using the client API from any JVM application.
Saga actions must share a common underlying type. See the serialization page for more details on this.
The deployment requirements and setup are identical to those for Simple Sourcing.