This BPMN example shows the use of the pattern N out of M join.
The Parallel Split and Synchronization pattern can be extended to offer some flexibility as the transitions marshal in an activity called a Complex Gateway (diamond with a “*”).
In the example, if an order’s credit check fails, there is probably no need to wait for the transitions coming from either the Check Inventory or Calculate Shipping Charge activities. If the credit check fails, an indicator can be set in the Check Credit activity so that once it reaches the Synchronize activity the instance is immediately released. If this occurs, the BPM Server automatically removes the instances left stuck in the Check Inventory and Calculate Shipping, and the instance immediately continues on through the rest of the process.