Saga Orchestration vs. Choreography: Making the Right Trade-off in Event-Driven Systems
The saga pattern looks straightforward in diagrams. It becomes genuinely complex the moment you operate it in production. The central question — orchestration or choreography — carries consequences...

Source: DEV Community
The saga pattern looks straightforward in diagrams. It becomes genuinely complex the moment you operate it in production. The central question — orchestration or choreography — carries consequences that ripple through your codebase, your operational posture, and your team's cognitive load for years. This is not a "use orchestration for complex sagas, choreography for simple ones" post. The real trade-offs are more specific. The Baseline: What Both Approaches Must Solve Before choosing an approach, every saga implementation must handle: Atomicity at step boundaries — commit the database write and publish the event in the same transaction (transactional outbox or CDC) Idempotent consumers — at-least-once delivery means your steps will be invoked more than once Compensation correctness — compensating transactions are not rollbacks; they undo changes in a world that has moved on Observability — correlation IDs, structured logging, and queryable saga state These are table stakes, not option