# BPMN Event

**In short:** A BPMN event is something that happens in a process and affects its flow. Events either wait for something from outside (catch) or are raised by the process itself (throw).

## Explanation

A BPMN event marks a point where something happens during a process. See BPMN Core Elements for the full set of diagram elements.

**Catch and throw**

Events fall into two groups.

- A catch event comes from outside the process. The process passively waits for it.
- A throw event is something the process does itself, as part of its own execution.

**Start events**

A start event reacts to something external. That trigger begins the process or a subprocess. A subprocess is a smaller process nested inside a larger one.

**Boundary events**

A boundary event must be an intermediate catch event. The articles Boundary Event and Intermediate Event cover this in detail.

**Link events**

Link events come in pairs. One throws and marks an exit point. The other catches and marks a re-entry point. A shared link name matches them.

A pair works like two plain intermediate events joined by a sequence flow. Modelers use links to build loops or to skip sections. The article Link Event covers this.

**Terminate end events**

A terminate end event stops every element instance in its flow scope. After that, the process instance completes. Inside a subprocess, terminate only affects that subprocess.

**Event subprocesses**

An event subprocess can be interrupting or non-interrupting.

- An interrupting one can trigger only once.
- A non-interrupting one can trigger many times.

**Signals**

Broadcasting a signal triggers every signal event with a matching name. So one signal can reach many subscribers.

## Example

An order process starts when a customer order arrives. That arrival is a catch event, because it comes from outside.

The process then checks stock. A link throw event sends the flow to a matching link catch event further on, which skips a section. The process ends with a terminate end event, which stops everything still running in that scope.

If a warehouse system broadcasts a signal, every signal event with that name reacts.

## Trade-offs

Signals reach many subscribers at once, because every matching signal event is triggered. That is useful for broad notifications, but the sender cannot limit who reacts.

An interrupting event subprocess fires once. A non-interrupting one can fire repeatedly. Pick based on whether the trigger may happen again.

BPMN diagram: [A start event, a link throw and catch pair that skips a section, and a terminate end event.](https://arc.fuet.ch/diagrams/concepts/modeling-bpmn/bpmn-event/diagram-1.bpmn)

## Checks

- Boundary events in the process models are intermediate catch events.
- Every throwing link event has a catching link event with the same link name.
- Terminate end events inside a subprocess are understood to stop only that subprocess.
- Event subprocesses that must react repeatedly are modeled as non-interrupting.
- Each start event names an external trigger that begins the process or subprocess.

## Related

- [Intermediate Event](https://arc.fuet.ch/concepts/modeling-bpmn/intermediate-event.md)
- [Boundary Event](https://arc.fuet.ch/concepts/modeling-bpmn/attached-boundary-intermediate-event.md)
- [Link Event](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-link-event.md)
- [BPMN Compensation Event](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-compensation-event.md)
- [Event-Based Gateway](https://arc.fuet.ch/concepts/modeling-bpmn/event-based-gateway.md)
- [BPMN Core Elements](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-core-elements.md)
- [BPMN Activity](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-activity.md)
- [BPMN Gateway](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-gateway-semantics.md)

## Sources

- [Overview | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/events/) — docs.camunda.io, accessed 2026-11-08
- [Link events | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/link-events/) — docs.camunda.io, accessed 2026-11-08
- [Terminate events | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/terminate-events/) — docs.camunda.io, accessed 2026-11-09
- [Event subprocess | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/event-subprocesses/) — docs.camunda.io, accessed 2026-11-09
- [Signal events | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/signal-events/) — docs.camunda.io, accessed 2026-11-09
