Gateways are elements that are used to show how the process flow is controlled, e.g. converge or diverge within a process. If the flow does not have to be controlled, no gateway is drawn. The term gateway implies that there is a gate mechanism that either allows or disallows passage through the gateway– that is, as tokens arrive, they can be merged on input and/or split apart on output. A gateway is actually a collection of gates. Although the gates are not graphically depicted, they are included in the sequence flow.

Gateway types

Gateways can define all types of flow behavior: Decisions/branching (exclusive, inclusive, and complex), merging, forking, and joining. While the diamond has been traditionally used for exclusive decisions, BPMN extends the behavior of the diamonds to reflect any type of flow control. Each type of gateway has an internal marker to indicate the type of gateway.

Exclusive Data-Based
Exclusive Event-Based
Exclusive Event-Based (Instantiating)
Parallel Event-Based (Instantiating)