The Usage of BPMN Gateways

Gateways are used to control how the process flows. In Business Process Model and Notation (BPMN) definition, only sequence flow will affect the flow of work and message flow should not affect the flow of work. If you want to know message flow usage, please see How does BPMN message flow work? article. Gateways can only be connected by sequence flow only. This article will show different type of gateways and their behavior with Business Process Animacian.

Below image shows correct gateways usage:

Typical BPMN gateway usage

Typical BPMN gateway usage

Below image shows incorrect gateways usage:

Incorrect gateway usage

Incorrect gateway usage

Type of gateways

There are 5 types of gateways in BPMN. These five types of gateways are Exclusive Gateway, Event-Based Gateway, Inclusive Gateway, Parallel Gateway and Complex Gateway. Below image show the graphical notation of different type of BPMN gateways.

Different types of gateway

Different types of gateway

Exclusive gateways

Exclusive gateway is a diversion point of a business process flow. For a given instance of the process, there is only one of the paths can be taken. See below business process diagram. If the order amount is greater than 1,000, we will request deposit from customer. If the order amount is 1,000 or less, we will deliver goods directly. There is only two possible path of the business process and these two possible paths will only execute one but not both. Please see Exclusive gateways example animation.

Exclusive gateway

Exclusive gateway

The suggested modeling of gateways is state the checking (question) in the gateway (diamond shape) and state the condition in the sequence flow. When the business process is executed (either by manual process or with automatic process), the condition will evaluate one by one and once the first condition is fulfilled, we still trigger the connected activity and stop evaluate other condition.

Suggested gateway modeling

Suggested gateway modeling

Exclusive gateway with default sequence flow

As we discussed above, exclusive gateway only run one and only one path of the out-going sequence flow and evaluate condition by condition. You may want to know how about all condition are not fulfilled? In this case, the default sequence flow will be triggered. When all condition are evaluated and no one is fulfilled, the default sequence flow will be triggered.

Specify default flow

Specify default flow

Inclusive gateways

Inclusive gateway is also a division point of the business process. Unlike the exclusive gateway, inclusive gateway may trigger more than 1 out-going paths. Since inclusive gateway may trigger more than 1 out-going paths, the condition checking process will have a little bit different then the exclusive gateway. All out-going conditions will be evaluated no matter has fulfilled out-going flow or not. Below business process diagram show a typical inclusive gateway usage.

Inclusive gateway

Inclusive gateway

Following are all possible paths of the business process

  1. Ship all goods by air
  2. Ship all goods by sea
  3. Ship some goods by air and others by sea.

See Inclusive gateway animation.

You can set the gateway to inclusive gateway by popup menu. Please see below image for more detail:

Set inclusive gateway

Set inclusive gateway

Event-Based Gateway

Event-Based Gateway are similar to exclusive gateway but the trigger of gateway is base on event occur instead of evaluate condition. We can imagine when our process arrived to event-based gateway, we will wait until something is happen. The event usually trigged by third party (e.g. our customer send payment to us). Below is typical event-based gateway. We send a quotation to customer and waiting for customer to confirm the order. If customer sends confirmation, we will prepare goods for customer. If we don’t receive any confirmation from customer after 15 days, we will send reminder to customer.

Event-based gateway

Event-based gateway

See Event-Based Gateway animation.

Parallel Gateway

A parallel gateway is used to visualize concurrent execution of activities. We the process arrive to parallel gateway node, the work will split into multiple token and will merge when reach to the joining parallel gateway. Bellow in typical example of parallel gateway.

Parallel gateway

Parallel gateway

See parallel gateway animation.

Complex Gateway

Complex gateway is used to model complex synchronization behavior. We don’t suggest modeler to use complex gateway too often. Please try to use combination of different gateway types before decided to use complex gateway.

6 replies
  1. Kay Odei says:

    What happens with the event-based gateway when there is no response after the reminder is sent? Also after the reminder is sent, I would expect handling for a customer response depicted as a data flow from the ‘customer’ swim lane, but this is not shown on the diagram

  2. Dominique Vauquier says:

    Sure, these diagrams are only for epitomizing the notation. A full-fledged process should include the reminder pattern, with a message sent to the client, a loop back to the first gateway, and a check on the number of iterations compared to a threshold value.

  3. Dominique Vauquier says:

    The animation for the “inclusive or” gateway is not sufficient to explain its semantics. It should include a scenario where both branches are active. In such a case, the second gateway acts as demon, waiting for both activities to end, before it lets the flow pass to the process end.
    In my training experience, this gateway is the one which is the most difficult to understand.

  4. Bjørn Næss says:

    Where can I find some examples with real-life diagrams?
    I am trying to model some healthcare processes with BPMN. All models is simple in the first iteration. Then more and more complexity is added as real life tasks, events, forks are added. In the end the diagram is almost unreadable. Thus it would be nice to see some real examples with all complexity added.

  5. Adam Hulse says:

    Complexity is dependent on who your stakeholders (viewers) are going to be. Of course any BPMN will become extremely complicated and complex if you drill down to every action and message. If you need to explain high level, use subprocesses and fill in the details of those subprocesses later (if under time constraint). If you need to explain low level, use multiple canvas (each would probably be a subprocess of a high level) and have the arrow symbol to ‘jump’ to the next diagram (with the filename the same are the arrow name). Then with your stakeholder you can focus on the details of that one piece in question. Hope this helps.

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply