Three gateways, three behaviors
You've probably seen exclusive and parallel gateways. Here's how all three compare:
| Gateway | Symbol | Takes | When to use |
|---------|--------|-------|-------------|
| Exclusive | ◇ (X) | Exactly one path | If/else decisions |
| Parallel | ◇ (+) | All paths | Always do everything concurrently |
| Inclusive | ◇ (O) | One or more paths | Conditional multi-path |
The inclusive gateway (OR gateway)
An inclusive gateway evaluates every outgoing condition. Each condition that is true activates that path. Zero to all paths can be taken.
A real example: product launch notifications
When launching a product, the team needs to:
- Always: Update the changelog
- If external customers affected: Send customer email
- If a blog post exists: Publish the blog
- If a premium feature: Notify enterprise customers
Some launches trigger one notification. Others trigger three. An exclusive gateway can't model this — an inclusive gateway can.
> 💡 Inclusive gateways also need a join. Like parallel joins, they wait for all activated paths to complete before continuing.