Business process that spans multiple transactions with simple, linear flow.

The saga listens to events from all involved components, and issues subsequent commands. If any of the steps fails, the saga is responsible for any rollback actions (compensation actions) needed to be issued.

Complex sagas may require to have its own state, and may be implemented as an event-sourced aggregate.

Saga vs process manager patterns

Consistency

The states of the involved components are eventually consistent. Because of that, don’t abuse sagas to compensate for improper aggregate boundaries. If strongly consistent data required, we have an issue.