The Choreography pattern coordinates microservices by having each service react to events published by others, without any central controller directing the workflow.
Key Points: • Each service knows how to react to specific events but has no knowledge of the overall workflow or the other participating services. • When a service completes its part of a process, it publishes an event describing what happened rather than calling the next service directly. • Other services subscribe to the events they care about and trigger their own logic independently when those events occur. • This decentralization keeps services loosely coupled and makes it easy to add a new participant without changing existing services. • The trade-off is reduced visibility into the end-to-end process, since no single place shows the full sequence of what happens for a given business flow.
Example: When an order is placed, the Order service publishes an OrderPlaced event; the Payment service reacts by charging the customer and publishing PaymentCompleted, which the Inventory service then reacts to by reserving stock, all without any of them calling each other directly or knowing about the full flow.
Interview Tip: A concise interview answer is:
"In choreography, each service reacts to events from other services and publishes its own events when it completes work, with no central coordinator directing the flow. It keeps services loosely coupled and easy to extend, but makes the overall business process harder to trace since it's spread across independent event handlers."