What is a gateway?
A gateway is a diamond-shaped element that controls the flow of a process. It either splits the flow (one path becomes many) or joins it (many paths become one). The symbol inside the diamond tells you the type.
Getting gateways right is the difference between a process that works and one that deadlocks, creates ghost tokens, or takes the wrong path. Most BPMN modeling mistakes happen at gateways.
| Gateway | Symbol | Paths taken |
|---|---|---|
| Exclusive (XOR) | X | Exactly one |
| Parallel (AND) | + | All |
| Inclusive (OR) | O | One or more |
| Event-based | Pentagon | Whichever event fires first |
| Complex | * | Custom condition |
Exclusive Gateway (XOR)
Exactly one path is taken.
As a split
The token follows the first condition that evaluates to true. Only one outgoing path fires.
As a join
Waits for one incoming token, then continues. Does not wait for the others.
Example
Order amount > €500? If yes, require manager approval. If no, auto-approve.
Common mistake
Forgetting the default path. If no condition matches, the process gets stuck (deadlock).
Parallel Gateway (AND)
All paths are taken simultaneously.
As a split
The token is duplicated — every outgoing path fires at the same time.
As a join
Waits for all incoming tokens before continuing. The process synchronizes here.
Example
After a new hire signs the contract: IT sets up the laptop AND HR prepares the badge AND the manager assigns a buddy. All three happen in parallel.
Common mistake
Using a parallel split without a matching parallel join. The process will never synchronize, creating ghost tokens.
Inclusive Gateway (OR)
One or more paths are taken.
As a split
Every condition is evaluated independently. All paths where the condition is true fire. At least one must fire.
As a join
Waits for all tokens that were created at the matching split. Smart enough to know which paths were activated.
Example
Customer complaint: if product defect, send replacement. If service issue, escalate to team lead. If both, do both.
Common mistake
Confusing with exclusive gateway. Inclusive means multiple paths CAN fire simultaneously — exclusive means exactly one.
Event-Based Gateway
Wait for one of several external events. The first event that occurs determines the path.
As a split
The process pauses and listens for events (messages, timers, signals). The first one to arrive wins.
As a join
Not used as a join — only as a split.
Example
After sending a quote: wait for customer response OR wait 7 days. If the customer responds first, process the order. If the timer fires first, follow up.
Common mistake
Putting tasks after an event-based gateway instead of events. Only intermediate catching events (message, timer, signal, condition) are allowed.
Complex Gateway
Custom routing logic that none of the other gateways can express.
As a split
A custom condition determines which paths fire (e.g., "any 2 out of 3").
As a join
A custom condition determines when to continue (e.g., "continue when 2 of 3 paths have arrived").
Example
Three departments must review a proposal. Continue when any two have approved — do not wait for the third.
Common mistake
Using a complex gateway when a simpler gateway would work. Complex gateways are hard to understand and most process engines have limited support for them.
Which gateway should I use?
In practice, exclusive and parallel gateways cover 90% of cases. Inclusive gateways handle most of the rest. Event-based gateways appear in processes that wait for external responses. Complex gateways are extremely rare.
Related guides
Keep learning
Frequently asked questions
What is the most common BPMN gateway?▼
The exclusive gateway (XOR). It models simple yes/no or either/or decisions. Most business processes have at least one.
What happens if I use the wrong gateway type?▼
The process will behave incorrectly. An exclusive gateway where you need a parallel one means only one task runs instead of all. A parallel join where you need an exclusive one means the process waits forever for tokens that will never arrive (deadlock).
Do I always need a matching join gateway?▼
For parallel and inclusive gateways, yes — you need a matching join to synchronize. For exclusive gateways, a matching join is optional but recommended for clarity.
Can I use a gateway with only two paths?▼
Yes. A gateway with two outgoing paths is perfectly valid and very common (e.g., approved/rejected). Gateways are not limited to a specific number of paths.