Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Sagas are coordinated in two ways:

  1. Through Orchestration - a target service (can be a standalone or a participant in the transaction) is designated as the coordinator of the steps/state to complete a set distributed transaction by invoking/emitting events to other services either asynchronously or synchronously.

  2. Through Choreography - each service invokes/emits an event that prompts the next service in line to complete its transaction either asynchronously or synchronously.

Distributed transaction matrix

Communication

Consistency

Coordination

Synchronous

Atomic

Orchestration

Synchronous

Atomic

Choreography

Synchronous

Eventual

Orchestration

Synchronous

Eventual

Choreography

Asynchronous

Atomic

Orchestration

Asynchronous

Atomic

Choreography

Asynchronous

Eventual

Orchestration

Asynchronous

Eventual

Choreography

Saga State Machine for scenarios

To better visualize the state transitions you can refer to the "Vessel Registry Controller Microservice: Saga Orchestrator" post to get more details. We will omit that section from this document as it is well documented there.

Saga Pattern 1 - Synchronous / Atomic / Orchestration

Image RemovedImage RemovedImage AddedImage Added