intermediateChoreography Saga

How does a choreography saga coordinate a multi-step business process without any central coordinator?

In a choreography saga, no single service holds the full sequence of steps — instead, each service listens for events published by the services before it, performs its own local unit of work, and publishes its own event once it's done. The next service in line reacts to that new event the same way, and the chain continues purely through this listen-react-publish relay until nothing further gets triggered. For example, a Loans service publishing LoanApprovedEvent causes an Accounts service to deposit funds and publish FundsDepositedEvent, which in turn causes a Customer service to update a credit profile. Because each service only needs to know about the event types it listens for, not about who published them or who's downstream, the participating services stay loosely coupled — the trade-off is that the overall plan only exists as an emergent pattern across several independent listeners, not as a single readable definition anywhere in the code.

Ready to master this question?

Generate a complete walkthrough — background, the full answer in plain language, a working code example explained line by line, a real-world scenario, common mistakes, and how this same question gets asked in different ways.

Sign in to generate a response

Next Step

Continue to How do you implement a compensating transaction in a choreography saga?← Back to all Event-Driven Microservices questions