Intermediate Event

In BPMN, Intermediate Event is a modeling element that represents a point of time between a start event and end event of a process at which some matter occurs.

Overview of Intermediate Event
In BPMN, Intermediate Event represents a point of time at which some matter occurs in a process being executed, i.e. an interval between the start of an individual process and its end. Thus, Intermediate Event itself does not start or terminate a process. Intermediate Event catches triggers (conditions or situations that cause events) or throws such triggers. In other words, Intermediate Event has characteristics of both Catch Event and Throw Event. However, it does not mean that all Intermediate Events have both of them. Intermediate Events are categorized into 10 patterns based on the timing at which they are used in a process and what kind of events are caught or thrown.

Primary Roles of Intermediate Event

 * Indicate a point of time at which messages are sent or received in a process
 * Indicate a point of time at which delays are expected in a process
 * Abort a normal flow by means of a exception handling, and then switch to an exceptional flow
 * Show that there is an ad-hoc task that is necessary for a compensation process

Details related to Intermediate Event

 * When used in a normal flow, it behaves as either Catch Event or Throw Event.
 * When used on boundaries of Activitys, it only behaves as Catch Event.
 * When used as Catch Event, the Token stays at the Event until the arrival of timing or a message that is defined as a trigger.
 * When used as Throw Event, it initiates, as soon as a Token arrives, an event, such as transmission of messages, and then the process proceeds to the next phase.

Notation for Intermediate Events
In general, Intermediate Event is represented as a circle drawn with double thin lines to be distinguished from Start Event and End Event. There are ten types, as shown below, in Intermediate Event. Different notations are used for each type of event (result) that occurs during the process execution. A marker of different shape is placed in the double-lined circle to distinguish the corresponding event from Intermediate Events of other types.

Unlike Start Event and End Event, Intermediate Event can be categorized as either Catch Event or Throw Event depending on the cases. In BPMN, markers of Intermediate Events that are classified as Catch Events are filled with white. On the other hand, markers of Intermediate Events that are classified as Throw Events are filled with black.

Notation of Exception Handling and Compensation Process
In general, an exception handling and a compensation process are represented with one Intermediate Event as shown in Figure 1 on the right. Both Figure 1-1 and Figure 1-2 are process diagrams that show that activity B is executed as the "exception handling" when an error occurs at activity A. In case the process diagram is to be horizontally drawn, it is usually drawn as shown in Figure 1-1. On the other hand, if the process diagram is to be vertically drawn, it is generally drawn as shown in Figure 1-2.

Connection to Boundary of Activity and Flow

 * 1) Connection to Boundary of Activity
 * Intermediate Events other than ones of "None" type and "Link" type can be directly placed on boundaries of activities. It is also possible to place multiple events.
 * * "Cancel" type Intermediate Events can be placed on boundaries of sub-processes.
 * 1) Connection to Sequence Flow
 * (a)When Intermediate Events other than ones of "None" type and "Link" type are placed on boundaries of Activities:
 * They can not be subjects of Sequence Flows. In other words, incoming Sequence Flows are not connected to Intermediate Events.
 * They must be the only one origin of Sequence Flows. In other words, an outgoing Sequence Flow is connected to only one Intermediate Event.
 * *Intermediate Events of "Compensation" type are not connected to outgoing Sequence Flows.
 * (b) When Intermediate Events other than ones of "Cancel" type, "Error" type, and "Multiple" type are used in normal flows:
 * Intermediate Event of "None" type and "Compensation" type must be the only one subject of Sequence Flow. In other words, these Intermediate Events must be connected only one incoming Sequence Flow.
 * Intermediate Events of "Message" type, "Timer" type, "Conditional" type, "Link" type, and "Signal" type can be a subject of only one Sequence Flow. In other words, these Intermediate Events can be connected to only one incoming Sequence Flow.
 * Intermediate Events must be the only one origin of Sequence Flows. In other words, outgoing Sequence Flows are connected to only one Intermediate Event.
 * * Intermediate Events of "Link" type do not require outgoing Sequence Flows.
 * (c) When Intermediate Events of "Link" type are used as "Off-Page Connectors" or "Go To" objects:
 * It can not be the origin and subject of Sequence Flows at the same time. In other words, it can not be the Intermediate Event for both of the link source and link target at the same time.
 * When there exists one "Source" Intermediate Event, there must be the corresponding "Target" Intermediate Event (with the same name).
 * There can be multiple "Source" Intermediate Events corresponding to one "Target" Intermediate Event.
 * There can not be multiple "Target" Intermediate Events corresponding to one "Source" Intermediate Event.
 * 1) Connection to Message Flows
 * Intermediate Events of "Message" type can be either origins or subjects of Message Flows. In other words, they can connect to incoming Message Flows as well as outgoing Message Flows. However, both can not be connected at the same time.

Changes from BPMN 1.0 Specification
Upon the transition from BPMN 1.0 specification to BPMN 1.1 specification, some changes are made in notation and names.


 * Regarding "Message" type, "Throw Event" type is newly added.
 * Design of a marker for "Error" type is changed so that it is drawn with extra-thick lines.
 * In "Cancel" type, "Throw Event" type is changed into "Catch Event" type.
 * Concerning "Compensation" type, "Catch Event" type is newly added.
 * In "Conditional" type, a name of a trigger is changed from "rule" to "condition."
 * Regarding "Link" type, "Catch Event" type is newly added.
 * A trigger named "Signal" is newly added in BPMN 1.1 specification.
 * The design of "Multiple" type is changed from "hexagram" to "pentagon." Furthermore, "Catch Event" type is newly added.

Related Articles

 * BPMN
 * Event
 * Start Event
 * End Event
 * Activity
 * Transaction
 * Sequence Flow