BPMN gateways

Gateways control flow. The marker inside the diamond decides whether one path is taken, all of them are, or the process waits.

A gateway does no work. If your diamond has a verb in it, it is probably a task.


#When it matters

  • Any process with a branch, which is most of them.

  • Parallel work that must all complete before continuing.


#The symbols

Symbol

Means

Exclusive (X)

Exactly one outgoing path is taken.

Parallel (+)

All paths are taken, and all must arrive to continue.

Inclusive (O)

One or more paths, based on conditions.

Event-based

Waits, and the first event to occur decides the path.

Complex

Rare, and usually a sign the model needs simplifying.


#A few things that catch people out

  • Every exclusive gateway needs a default path, or the process can get stuck with no valid route.

  • A parallel split must be joined by a parallel gateway. Mixing split and join types deadlocks.

  • Event-based gateways are how you model "whichever happens first", including timeouts.



Sequence flow stays inside the pool.