Support for Choreography Process combined with Pools that contain Processes

I want to create diagrams like the one show in Figure 11.51 on p.364 of the OMG BPMN 2.0 specification.

The objective is to describe multi-actor flows, showing the orchestration tasks performed by systems within a participant combined with the message flows between participants.

I tried the demo on bpmn.io but it does not appear to support choreographies. I found an open source project called chor-js that does support choreographies but not orchestrations.

Can someone advise if Camunda supports these diagrams, and if not is there any plan to add this functionality in the near future? It is standard BPMN 2.0 so I am surprised it is not already there.

Screenshot 2024-01-16 at 13.38.31

Hi @mswanson,

up to now, the choreographies part of the BPMN specification has a very low relevance in the real world.

That’s why they are not available in BPMN.io.

Hope this helps, Ingo

If that were true why would OMG add them to the BPMN 2.0 spec?

Should I conclude from your comments that bpmn.io/Camunda has no plan to support Choreographies in the future?

Hi @mswanson,

there was some academic research about choreography and the extension of BPMN.io to support this: https://camunda.com/blog/2021/01/chor-js-an-editor-for-bpmn-choreography-diagrams/

What is your use case?
What would be the improvement of your process model using choreography?

I’m curious.

Hope this helps, Ingo

Hi Ingo,

We’re aware of the chor-js research and have used their demo which works very well. As mentioned in the initial post, the issue is they do not support orchestration tasks so it is impossible to create diagrams per the BPMN spec.

Our use cases are focused on financial services - particularly trading systems - where you have multiple participants such as Customers, Brokers, Exchanges, Clearers etc interacting to execute orders.

In terms of the benefits, our industry relies heavily on messaging protocols designed for inter-participant communication such as FIX, FpML, ISO15022 and ISO20022. The protocols have recommended best practices that describe the sequence of messages that should be exchanged for various business processes. It’s basically impossible to represent these purely with orchestrations, as orchestration tasks are limited to a single participant.

Choreography tasks also allow us to separate the sequence flow from the messages being exchanged.

Many of the blogs that discuss choreographies pitch it in terms of “orchestrations or choreographies” which we believe is incorrect. Choreography tasks are fundamentally different to orchestration tasks as they require a minimum of two participants.

We would like to highlight that the BPMN 2.0 spec has a dedicated chapter for Choreographies running to over 50 pages (~10% of the spec). We feel this is a significant topic that warrants proper support, hence why we are surprised there is literally no support for it in Camunda or bpmn.io.

As a suggestion, would it not make sense to start by integrating the chor-js extension into bpmn.io? It looks like they have done most of the heavy lifting already.

With best wishes,

Martin