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.
#Related
Sequence flow stays inside the pool.
