Let's use separate rules, to demonstrate this feature:
Because there is a
$flow, the steps won't run in sequence as usual. Steps 2 and 3 will run in parallel - overall time should be around 3DUR, so less than 4DUR if the engine is not too busy...
$flow:: flow.start => ( flow.step1+( flow.step2|flow.step3 )+flow.step4 )
This rule matches each step and makes them all sleep:
The reason these actually run in parallel is because
ctx.sleep is a truly asynchronous executor.
diesel.get("error") + p1+p2