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:

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.