Gateways

A gateway is used to control the divergence and convergence of sequence flow. It represents traditional decision points, as well as the forking, merging, and joining of paths. It is represented by a diamond shape, with internal markers that indicate the type of behavior control.

When a gateway is selected, it can be resized by dragging any of the handles around it.

Icons within the diamond shape will indicate the type of flow control behavior. Each type of control affects both the incoming and outgoing flow. Controls are added to the gateway from the context menu (select the gateway and right-click).

Exclusive (Data-Based)

Indicates exclusive decision and merging, based on a Data Object. An Exclusive Gateway restricts the flow such that only one of a set of alternatives may be chosen.

Exclusive (Event-Based)

Indicates exclusive decision and merging, based on an Event. An Exclusive Gateway restricts the flow such that only one of a set of alternatives may be chosen.

Inclusive

Indicates inclusive decision and merging. A decision represents a branching point with  alternatives based on conditional expressions contained within the outgoing Sequence Flow.

It can be thought of as a grouping of related but independent Yes/No decisions. Since each path is independent, all combinations of the paths may be taken, from zero to all. However, it should be designed so that at least one path is taken.

Complex

Indicates complex conditions and situations (for example, 3 out of 5). This is a join where more than 1 but fewer than the total number of conditions is required for the process to continue.

Parallel

Indicates forking and joining. In BPMN, the term “fork” refers to the dividing of a path into two or more parallel paths. It is a place in the process where activities can be performed concurrently, rather than serially. In BPMN, “join” refers to the combining of two or more parallel paths into one path.