Problem
Cross-service operations need atomicity, but 2PC is unavailable, slow, or couples services. Local transactions commit independently.
Also known as: distributed-saga, choreography-saga, orchestration-saga
Manage distributed transactions across services without 2PC, using a sequence of local transactions with compensating actions.
Cross-service operations need atomicity, but 2PC is unavailable, slow, or couples services. Local transactions commit independently.
Low — uses existing messaging
High — monitor saga state, handle stuck sagas
High — compensation design, failure mode analysis
Compensation fails → saga stuck, manual intervention needed
Race conditions: concurrent sagas on same entities
Timeouts: step takes too long, orchestrator triggers compensation prematurely
Lost events: choreography breaks if event not delivered