LSPS documentation logo
LSPS Documentation
Gateway

A Gateway is a workflow modeling element used to direct, or fork or merge workflows.

GO-BPMN defines the following Gateway types:

Important: The target element of a Sequence Flow leaving a Gateway must not be a Timer Intermediate Event.

Parallel Gateways

Parallel Gateway changes the number of parallel flows in the process.

It can have multiple incoming and outgoing flows:

  • The gateway waits until it has received workflows from all incoming flows (tokens from all incoming flows must enter the gateway).
  • Once all incoming flows have reached the gateway, all outgoing flows are taken (possibly multiple tokens are produced).
ParallelGateway.png
Parallel Gateway notation

Exclusive Gateways

An Exclusive Gateway directs the flow so that exactly one outgoing flow is taken depending on the circumstances, rendering it a decision-making mechanism similar to the switch language construct.

An exclusive gateway has one or several incoming normal flows and one or several outgoing flows. If there are multiple outgoing flows, each flow, apart from the default flow, must define a guard with a Boolean condition.

When a workflow enters an Exclusive Gateway, one of the following happens:

  1. The first outgoing flow with the guard condition which is true is taken.
  2. If no such flow is available, the default flow is taken.
  3. If no default flow is available, the execution fails with a NoValidBranchError.
ExclusiveGateway.png
Exclusive Gateway notation