====== Make parallel split explicit ====== {{tag>parallel_gateway sequence_flow}} Avoid multiple sequence flows outgoing from an activity or event. ===== ✔ How to ===== Flow_02mmgfl Flow_1fsucrx Flow_12ytfbn Flow_1fsucrx Flow_12ytfbn Flow_02mmgfl ===== ✘ How NOT to ===== According to [[https://www.omg.org/spec/BPMN/2.0.2/PDF | BPMN spec]], the process depicted below does exactly what the "to do" process does: both are executed in parallel. The difference is this: parallel exectution is explicit in the diagram above and implicit in the diagram below. The explicit way should be preferred indeed. Flow_1fsucrx Flow_12ytfbn Flow_1fsucrx Flow_12ytfbn The sequence flows at the diagram below are labelled ("if this", "if that"), so naive user may think that there are two exclusive options. Yet it's still the same implicit parallel execution. Flow_1fsucrx Flow_12ytfbn Flow_12ytfbn Flow_1fsucrx ===== Notes ===== * Although several outgoing flows are allowed by [[https://www.omg.org/spec/BPMN/2.0.2/PDF | BPMN spec]], it's potentially confusing and therefore should be considered bad practice. * It's sometimes argued that implicit parallel execution saves one element (the parallel gateway) and hence makes the diagram simpler. This argument is hardly acceptable because the parallel gateway adds value to the diagram by making process execution logic clear. ===== Exceptions ===== * Implicit parallel flows are acceptable at the start event in [[en:rule:control_branch#Notes | control branch ]] technique. ===== See also ===== * [[explicit_parallel_merge]] * [[do_not_use_conditional_flows]] * [[do_not_save_on_gateways]] ===== Автор(ы) ===== --- //[[user:bell|Anatoly Belaychuk]] 2023-09-10 13:02//