Timer: Intermediate or Boundary?

A quick question for y’all with much more experience with bpmn.
Let me describe the process:
(1) System_A opens a connection (task_1) to system_B. (2) Two parallel tasks starts: system_A executes task_2 and system_B executes task_3.
System_A will wait 1 minute for a message from system_B, if no message the connection will be closed.

  • If system_B sends results to system_A within 1 minute, system_A will do task_5.
  • If system_A receives no message within 1 minute, system_A closes the connection.

And now my doubt is coming:
This 1 min, should I use it as a boundary timer (as on the picture) or somehow as a intermediate event (but there’s an IF - if within 1 min and if exceeds 1 min)?
There’s something wrong with my diagram.
Please help.

Hey @Apollonia!
Welcome to the Camunda Community :slight_smile:

I took a look at your description and your model and came up with something like this:
example.bpmn (13.7 KB)

Instead of using one pool I separated them. Now each system has its own process. In addition I made use of an event based gateway. Depending on what comes first - the message or the timer, I continue my process accordingly.

Your process model said: When the execution of task 2 takes longer than a minute you discard it and close the connection.

Hopefully that was helpful for you!


Thanks! I was focused so much on a multi-lane pool, I didn’t realize that describing the process with separated pools would make all easier. Thanks again!

1 Like