In the previous article, you learned the basics of Event-Based Gateways and how they allow Processes to pause and wait for decisions made by external Participants. Usually, these Gateways are in the middle of a Process, controlling which direction the workflow takes based on external Events.

But did you know there are two special types of Event-Based Gateways that can only be at the very start of a Process? These decide how the Process itself begins, not just how it branches in the middle. Understanding them helps you design flexible Processes that can start in multiple ways.
Normally, an Event-Based Gateway sits in the middle of a Process. The Process is already running, and then it waits for an external Event before moving forward.
Notation: Diamond with double circles and pentagon
Example: A bank loan application
A standard Event-Based Gateway waits in the middle of a running Process and chooses the next path based on whichever event arrives first. This creates a race condition:
→ The first Event that happens wins.
This type of Gateway is useful when the Process needs to pause and react to external responses - or even react to the lack of a response.
Examples of what might happen:
Event-Based Gateways can also be used to start Processes, but only in two special forms:
Both appear only at the Process start and have no incoming Sequence Flows.

Notation: Diamond with a single circle and pentagon
How It Works
This is perfect when the Process may begin in different ways, but only one starting path makes sense per case.
Example: Order handling using an Exclusive Event-Based Gateway to start a Process
The order handling Process starts when a customer places an order.
Customers can place an order using three different channels:
Each order received through any channel starts a new Process Instance.
This means that if the same customer sends multiple orders through different channels (or the same channel), each order creates its own Process Instance.
To prevent processing the same order more than once, the Process includes an early check to determine whether the received order already exists in the system.
In short: every incoming order starts a Process Instance, and duplicates are detected and handled inside the Process.
While the above model complies with BPMN, there are simpler alternatives that can be used to start the Process without relying on an Event-Based Gateway.
Example: Order processing using multiple Message Start Events + XOR join
A much simpler and clearer alternative is to completely remove the Event-Based Exclusive Gateway and model each order channel as its own start event.
Each incoming order message creates a new Process Instance, and the XOR join ensures that exactly one path is followed per Instance.
This alternative is:
Example: Order processing using a Multiple Start Event
Another alternative is to use one single Multiple Start Event.
How it works:
Important notes:
For these reasons, this option is usually avoided in practice.
Final Recommendation
While all three approaches are BPMN-correct:
➡️ The first alternative is good enough to completely forget about using an Event-Based Gateway to start a Process.

Notation: Diamond with a single circle and a plus (+)
How It Works
This is useful when you need multiple inputs, but don't know in what order they will be delivered.
Example: Budget approval Process using a Parallel Event-Based Gateway
In the example, the Process can be triggered by any one of three approvals:
A Parallel Event-based Gateway at the start listens for all three Events at the same time.
Here’s what happens:
Any approval may arrive first and trigger early project setup - but the Process waits for all to complete.
A Natural Question
This works - but do we really need this fancy and rarely used Parallel Event-Based Gateway to model this behavior?
Can this example be drawn in a simpler and more common way?
Yes - and before showing those alternatives, it’s important to understand a common modeling mistake.
Incorrect Example: Budget approval Process using a Parallel Gateway that causes deadlock
This is a bad BPMN model and often causes a deadlock. Why?
A Parallel Gateway used as a join requires all incoming sequence flows within the same process instance to arrive before it can continue. However, the incoming flows here originate from multiple Start Events, and Start Events do not synchronize - each one creates a separate process instance.
So what happens?
As a result, the Gateway waits forever and the Process Instance is blocked.
This is exactly why Parallel Event-Based Start behavior exists in BPMN - regular Parallel Gateways must never be used to join flows coming from multiple Start Events.
Because this Gateway is rarely used and not available in all modeling tools, people sometimes replace it with:
Example: Budget approval Process using a Parallel Multiple Start Event
Use:
Behavior
In other words, the start event represents a logical AND: the Process starts only when all approvals are available.
When this makes sense
Trade-Off
Example: Budget approval Process using two Parallel Gateways
Another common pattern:
Behavior:
The alternatives shown above are all valid BPMN modeling patterns and will work correctly, but they do not behave exactly the same as a Parallel Event-Based Gateway used at the start.
Each option defines a different moment at which the Process Instance is created and a slightly different relationship between Process start and incoming Events. Choosing one over another is therefore not just a modeling preference - it changes when the Process begins and how early work can start.
Summary Comparison
| Pattern | When Process is instantiated | When other Events occur | Semantics |
|---|---|---|---|
| Parallel Event-Based Gateway (Start) | First Event arrives | Remaining Events arrive later | Start early, wait for all |
| Parallel Multiple Start Event | Only after all triggers occur | Before instantiation | Start late, everything ready |
| Single Start + Parallel Gateway | Explicit start | After instantiation | Start explicitly, then wait |
Event-based Gateways allow BPMN Processes to react to external Events rather than internal decisions. Understanding the differences between their variants is essential for accurate modeling.
While the start variants are powerful, they are also more complex. In practice, simpler patterns are often used, as long as the modeler understands how they change the semantics of Process instantiation.
The most important lesson is not which symbol you choose - but whether the model clearly expresses: when the Process starts, what Events it waits for, and how those Events are coordinated.