Skip to main content

Event-Based Gateway

An Event-Based Gateway is a BPMN element that decides the path of a process based on which event happens first.

Unlike data-based (exclusive) gateways, the decision is not made by evaluating conditions, but by waiting for events.

Key characteristics

  • Event-driven decision: The gateway waits for one of several alternative events to occur. The first event that occurs determines the outgoing path.

  • Exactly one path is taken: Once an event is triggered, all other alternative events are canceled and their paths are disabled.

  • No conditions on sequence flows: Outgoing sequence flows must not have conditions. The logic is defined by the events themselves.

  • Must be followed only by event-catching elements: Each outgoing path must lead directly to an Intermediate Catching Event, or a Receive Task

  • Used for reactive behavior: Commonly applied in scenarios where a process must react to external signals, messages, timers, or user responses.

  • Consumes no token by itself: The gateway passes control to the event that occurs; the token continues only along the triggered path.

Allowed event types after the gateway

Outgoing sequence flows from an Event-Based Gateway may lead to the following catching events or tasks:

  • Message Intermediate Catch Event: Waits for a specific message from another process or external system.

  • Timer Intermediate Catch Event: Waits until a specified time condition is met (date, duration, or cycle).

  • Signal Intermediate Catch Event: Reacts to a broadcast signal.

  • Conditional Intermediate Catch Event: Proceeds when a defined condition becomes true.

  • Receive Task: Represents waiting for a message, modeled as an activity rather than an event.

Note: Throwing events are not allowed after an Event-Based Gateway.

Graphical notation

A diamond shape with a pentagon event marker inside.

XML Definition

<bpmn:eventBasedGateway id="EventBasedGateway_1" name="Wait for Event">
<bpmn:outgoing>Flow_Message</bpmn:outgoing>
<bpmn:outgoing>Flow_Timer</bpmn:outgoing>
</bpmn:eventBasedGateway>

Current Implementation

Event based gateway currently supports message and timer events.