Connecting two sequence one from one lane and one from another lane with parallel gateway

Hello,

How can I fix this flow in the picture?

I have two different IT system. One of the system is sending a message to second one and they are proceeding some parallel events. Then second system is sending a message to first one to merge the flow. I created a dummy flow below:

Parallel gateways work the same way regardless of whether sequence flows come from the same lane or different lanes - they wait for all incoming tokens before proceeding. I found the following relevant resources:

Does this help? If not, can anyone from the community jump in? :waving_hand:


:light_bulb: Hints: Use the Ask AI feature in Camunda’s documentation to chat with AI and get fast help. Report bugs and features in Camuda’s GitHub issue tracker. Trust the process. :robot:

Make the message catch event an intermediate event and use a seqence flow between the message events in the upper pool.

Currently, when the second process completes, it creates a new/different instance of the first process. You can see that there’s a green and a blue instance in the picture. That’s why the gateway does not work.


Thank you very much.
Start event is creating a new token. Intermediate message event is waiting for the same token until it arrives.
But we cannot use a sequence flow between pools.

You’re right. However, remember that tokens do not flow via message flows, so the intermediate event will never receive a token (only a message). It seems to work in the simulator, but that’s a bug. :frowning:

To fix the upper process, the message throw event must be conncted with the message catch event in the same pool.

Also, because each pool is a separate process, the process in the lower pool must have start and end events.


I updated as above,

“Also, because each pool is a separate process, the process in the lower pool must have start and end events.”
I got that point but,

“To fix the upper process, the message throw event must be conncted with the message catch event in the same pool.” Why should they be in the same pool?

I saw that logic in Camunda’s video (BPMN Message Events and Message Flows Explained):

Here’s a correct diagram:

The sequence flow I’ve added in pool A is required for the process to work. I understand this is difficult to grasp, because BPMN is unclear about that case. However, while your diagram only works in the simulator, it would not work in Camunda. The fixed diagram works in both.

The flow unambiguously tells the proces that it has to wait for the incoming message after the first message was sent.

Why should they be in the same pool?

You misunderstood. They are already in the same process/pool. You just have to connect them as shown above.

I saw that logic in Camunda’s video (BPMN Message Events and Message Flows Explained):

The link seems to be missing. However, if it’s the video I know, then have a closer look. The diagrams in the video match the diagram I’ve posted.

Finally, please keep the pools separate. The way you’ve put them together in your latest diagram makes them easily confused with lanes, which are a totally different type of element.

I totally understood the situation.
I checked the video again, you are right. It was what you said.

Thank you very much for your responses.

Also thank you for your clarification about lane and pool.