Buy @ Amazon

Service Orchestration And Service Choreography

Service Orchestration

When you think Service Orchestration, visualize the picture above. You will have an Orchestrator who controls the individual components in the live performance. An Orchestrator typically is present in the live performance to control the individuals' performance.

In the realm of software world, you'll have an Orchestrator class/module that composes the individual Domain classes/services to achieve its end goal. Service-Oriented Architecture (SOA), for instance, is an architectural style adopting the Service Orchestration philosophy.

In service orchestration, a service is represented by a single centralized executable business module (The Orchestrator) composed of many small services that it controls and orchestrates. The Orchestrator or the composite service is responsible for the management of transactions between individual participating services. Orchestration employs a centralized approach for service composition.

Service Choreography

When you think of Service Choreography, visualize the picture above. A Choreographer is someone who defines what the individual has to do in a live performance and trusts him with that in live performance. You don't see a Choreographer controlling the individuals in live performance, do you?

In the realm of software world, the individual Domain classes/services work-together as a sequence of actions (just as the way a dance performance is orchestrated) to achieve the desired end goal. Micro-services architecture, for instance, embraces the  philosophy of Service Choreography.

In service choreography, a service is often represented by an endpoint that delegates the work to one of the participating  services, that does its job and notifies the other on the state of the task and the chain continues, until the last participating service is done to get the desired business results. The relationship among these services is more peer-to-peer instead of command-and-control. Service Choreography employs a decentralized approach for service composition.

Worth Noting: If you see books, articles or talks using these terms inter-changeably, it isn't right in my  humble opinion. It pays to know the difference in meaning and purpose. Save yourself!