====== 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//