====== Don't use mixed gateways ======
{{tag>gateway mixed_gateway}}
Gateways classification:
* diverging (split) - one incoming flow, several outgoing flows
* converging (join) - several incoming flows, one outgoing flow
* mixed - several incoming flows and several outgoing flows
Although mixed gateways are allowed it's better to avoid them.
===== ✔ How To =====
Flow_1jordbm
Flow_1jordbm
Flow_1jm9oqt
Flow_1lg1tqn
Flow_1khoqyb
Flow_0toczow
Flow_1khoqyb
Flow_11mz79l
Flow_0toczow
Flow_00s8ucj
Flow_11mz79l
Flow_00s8ucj
Flow_0znw93f
Flow_0znw93f
Flow_0wcisla
Flow_0wcisla
Flow_1fiuctz
Flow_0c7pvuu
Flow_1fiuctz
Flow_0c7pvuu
Flow_08y6k5p
Flow_0cucewu
Flow_08y6k5p
Flow_087oad2
Flow_0cucewu
Flow_1jm9oqt
Flow_087oad2
Flow_1lg1tqn
===== ✘ How NOT To=====
Flow_1jordbm
Flow_1jordbm
Flow_0mvc51i
Flow_0mvc51i
Flow_087oad2
Flow_1khoqyb
Flow_0toczow
Flow_1khoqyb
Flow_11mz79l
Flow_0toczow
Flow_00s8ucj
Flow_11mz79l
Flow_00s8ucj
Flow_0znw93f
Flow_0znw93f
Flow_0wcisla
Flow_0wcisla
Flow_1fiuctz
Flow_0c7pvuu
Flow_1fiuctz
Flow_0c7pvuu
Flow_08y6k5p
Flow_0cucewu
Flow_08y6k5p
Flow_087oad2
Flow_0cucewu
The process will hang at the first gateway because it'll wait for two tokens to arrive but only one will.
===== Notes =====
[[https://www.omg.org/spec/BPMN/2.0.2/PDF|BPMN 2.0.2 spec]] (p. 287) while not prohibiting mixed gatways completely treats them as bad practice:
> The Gateway controls the flow of both diverging and converging Sequence Flows. That is, a single Gateway could have multiple input and multiple output flows. Modelers and modeling tools might want to enforce a best practice of a Gateway only performing one of these functions. Thus, it would take two sequential Gateways to first converge and then to diverge the Sequence Flows.
As the examples above illustrates, mixed gateways may make the diagram confusing or erroneus so it's better to avoid them. Split the mixed gateway into two - converging followed by diverging.
===== Author(s) =====
--- //[[user:wjulia|Юлия Вагнер]] 2023-09-11 13:03//