Consider a simple workflow:
Start->Step1->Step2->Step3->Step4->Step5->End
What is the best way to start a subprocess in parallel (e.g. send message) optionally from either one of the steps between Step2 to Step4? For example, at Step2, under certain condition, it could start a subprocess in parallel, and merge back with Step5. Then the two parallel flows are:
Start->Step1->Step2->Step3->Step4->Step5->End ->Subprocess.........->
Another example, the subprocess could start from Step3, i.e.
Start->Step1->Step2->Step3->Step4->Step5->End ->Subprocess..->
Or, the subprocess may not start at all, i.e. only this:
Start->Step1->Step2->Step3->Step4->Step5->End
This is a much-simplified case. The real workflow is more complex, involving more tasks, gateways, and even subprocesses between Step1 to Step5. So it seems not a good idea to manually add conditions at every step to start the subprocess.