How to read BPMN events
Every BPMN event has two visual properties:
- 1.Circle border tells you the position: thin = start, double = intermediate, bold = end.
- 2.Icon inside tells you the type: envelope = message, clock = timer, lightning = error, and so on.
Additionally, a filled (solid) icon means the event throws (sends something). An outline icon means it catches (waits for something).
Start events
Thin circle - What triggers the process.
None
Process is started manually or by the system.
Message
An email, API call, or message arrives.
Timer
A specific date/time or recurring schedule.
Signal
A broadcast signal is received (multiple processes can listen).
Conditional
A business condition becomes true (e.g., stock drops below threshold).
Intermediate events
Double circle - Something happens during the process.
Timer
Wait for a duration or specific time before continuing.
Message (catch)
Wait for an incoming message before continuing.
Message (throw)
Send a message to another participant.
Signal (throw)
Broadcast a signal to all listening processes.
Link
Connect two parts of a diagram (off-page connector).
Escalation (throw)
Escalate to a higher-level process or handler.
Boundary events
Double circle on task border - An event that happens while a task or sub-process is running.
Timer
Task takes too long - trigger an alternative path.
Error
An error occurs inside the task or sub-process.
Message
A message arrives while the task is running.
Escalation
An escalation is raised inside a sub-process.
Conditional
A business condition becomes true during the task.
End events
Bold circle - How the process (or a path) finishes.
None
The path simply ends.
Message
The process ends by sending a message.
Error
The process ends with an error (caught by parent sub-process).
Terminate
Immediately kills all remaining tokens in the process.
Signal
The process ends by broadcasting a signal.
Escalation
The process ends by raising an escalation to the parent.
Interrupting vs non-interrupting
Boundary events and event sub-process start events can be either interrupting or non-interrupting:
Interrupting (solid border)
Cancels the activity it is attached to. The normal flow stops, and the exception path takes over. Example: an error boundary event on a sub-process.
Non-interrupting (dashed border)
Triggers a parallel path without stopping the activity. Both the normal flow and the event path run concurrently. Example: a timer that sends reminders every 24 hours.
"The event matrix looks overwhelming. Here is the shortcut: learn none, message, and timer start events and none and error end events first. That covers 80% of real processes. Add the rest only when you need them."
Which events do I actually need?
BPMN defines many event types, but most processes only use a few:
-80% of processes: none start, none end, timer intermediate (for waits)-Cross-organization processes: add message start/intermediate/end events-Executable processes: add error events for exception handling, timer boundary events for timeouts-Complex enterprise models: signals, escalation, compensation, cancel
Start with the basics and add event types only when the process requires them.
Related guides
BPMN Gateway Types
The other key flow control element.
BPMN Sub-Process Types
Event sub-processes use event start triggers.
Collaboration Diagrams
Message events power collaborations.
Common BPMN Mistakes
Event-related errors and how to avoid them.
Keep learning
Practice events
Space Ship Inc.
Timer, conditional, and boundary events in aerospace.
Advanced events
Nilla Care
Signals, errors, escalation, and termination in healthcare.
Frequently asked questions
How many event types are there in BPMN?▼
BPMN 2.0 defines 13 event types (none, message, timer, error, escalation, cancel, compensation, conditional, link, signal, terminate, multiple, parallel multiple). Combined with three positions (start, intermediate, end) and throw/catch, this creates over 50 possible event variants.
What is the difference between a message event and a signal event?▼
A message is point-to-point - sent to a specific recipient. A signal is a broadcast - every process listening for that signal receives it. Think email (message) vs announcement over the intercom (signal).
What is a boundary event?▼
A boundary event is attached to the border of a task or sub-process. It triggers when something happens while that activity is running - for example, a timer boundary event fires if the task takes too long.
Top comments (0)