Although this content seems to be today’s common wisdom, I disagree with the conlusion and the arguments:
- "When using orchestration, you need to update the checkout Service if needed to call a fourth service": that’s right and this is a good thing! At least someone manages the checkout service and is able to say what it does.
- "Choreography allows us greater flexibility and helps us keep our services decoupled": if you look in deepth, services are more coupled in the sense that they have to know and understand events from other services. In orchestration, services (like Email service) will have to know only to their own command events (such as “send email”).