Once you reached a point where you want to decouple your services, you have to choose between orchestration and choregraphy. This article will explain the difference between the two. And try to highlight pros / cons.

Orchestration vs Choreography

Let’s agree on a definition here : we are going to refer as services the decoupled parts of my codebase (ex: 2 microservices).

In software development, Orchestration and choreography are two different architectural approaches commonly used with loosely coupled services. Decoupling services end up with the following question :

How do my two services communicate with each other?

Orchestration:

Main difference : Sync, Centralized

Key points:

Popular tools :

Choreography

Main difference : Async, Collective intelligence

Key points:

Popular tools for event-driven architectures / message brokers :

Summary :

The choice between them depends on factors such as the complexity of the system, the level of control required, and the organization’s constraints. A combination of both approaches may be used within a single system to achieve the desired balance between control and autonomy, but it adds a double complexity.

Resources