Process Orchestration vs Choreography
Blog: ProcessMaker Blog
If you want to understand process orchestration vs. choreography, it might help to compare them to real-life examples first. For instance, think about buying a chocolate bar from a vending machine. A basic workflow would involve the following:
- Put money into the machine
- Select your item
- Cabinet emits the candy
- Retrieve your sweet treat
- Take any change (if available)
You can break this down further into three distinct components:
- Placing your order
- Item dispatch
Now, let’s imagine the aspects of a garage band – there wouldn’t be a conductor. With the vending machine, every event triggers another action primed for execution. When you insert your money, it activates the machine to allow a selection of snack options. Once you press the button of your choice, the disbursement begins. Each component only works based on the event that has occurred previously.
Unlike a garage band, a conductor is required when an orchestra is involved. Every note played, and how they are played, are guided by the conductor. For this illustration, you may call it orchestration with a conductor or process manager who sequences every event. Therefore, the conductor is aware of the entire workflow. Since the conductor knows all, this individual can also offer status updates – the music always happens on cue.
As in the example of a garage band, many of the members improvise; they work independently and don’t know what will happen next. So, if you’re a business that requires continuous updates, then orchestration would fit the bill. On the other hand, if your organization changes continuously, then choreography would make more sense. Still, they don’t have to be mutually exclusive as they can work together throughout various aspects of different workflows.
Choreography vs. Orchestration: What are their two modes of interaction?
When a workflow follows a pattern of orchestration, there is always a point-to-point connection between events – it would be challenging to remove required events because every link is noted. In contrast, choreography mandates that every action waits on an event before execution. Using the choreography pattern means that the events do not “talk” to each other but instead act autonomously. Orchestration requires active control, whereas choreography does not.
It makes a difference whether you use choreography or orchestration. Orchestration relies on a single point of view and commonly conveys a well-formed context. Choreography focuses more on the flow as opposed to each task associated with a process. You can add or remove events without impacting the entire workflow. Although, it can prove difficult to view all business processes as a whole.
Let’s return to the example of the orchestra. Each musician is an expert and has probably studied their craft for decades. Yet, without a conductor, they would not know what to play, how to play it, or when to play it – they need orchestration. However, with choreography, all events are managed by, say, AI, and every action performs as intended based on the triggers they receive.
Since orchestration requires constant management, it leaves a loophole for when service availability becomes an issue. When you get to the range of managing hundreds or thousands of processes, it becomes overwhelming to “orchestrate.” A failure could stop every function in its tracks. On a large scale, orchestration makes it easier to monitor all processes at once. Further, human interactions can be inserted easily and quickly.
Imagine a team of dancers performing at an event. They already know their choreography, so they can dance without anyone telling them where to go when to turn, or when to dip. They take the right steps and don’t miss a beat. The performance is asynchronous – when they’re on stage in front of their intended audience, they are no longer waiting on the choreographer. Choreography is the logical choice when tasks do not require synchronous responses and requests.
So then, compare the dance team to processes. Even if one event fails, every other action can continue to proceed as designed. If one dancer misses a jump in the same context, the other dancers can still go on with the performance as if it never happened. As a result, there is much less flux and churn. Each task is connected but also acts independently, which enhances time savings and reduces manual labor requirements. Processes execute faster because they have already been programmed and don’t need active management. The performance is proven and reliable. In essence, orchestration works best in a bounded context where choreography is optimized in between bounded contexts.
Taking a choreography route allows processes to scale with ease and offers better reliability. Not to mention, it can improve the speed, which also enhances service delivery for your end-users. Yet, orchestration can be used to manage bundled tasks and workflows – you get the conductor’s view. In the end, it makes sense to use both. Want to learn more about how a balanced approach can work for your organization? Contact Processmaker today to determine how to dynamically integrate your processes so that you can quickly meet your business objectives.