path is taken Multiple Merge - wait for one among a set of activities to complete before proceeding; if several of the activities being waited for are executed, the simple merge fires each time that one of them completes. Discriminator - wait for one of a set of activities to complete before proceeding; if several of the activities being waited for are executed, the discriminator only fires once. N-out-of-M Join - same as the discriminator but it is now possible to wait until more than one of the preceding activities completes before proceeding by setting a parameter N to some natural number greater than one. Structural Patterns Arbitrary Cycle - do not impose any structural restrictions on the types of loops that can exist in the process model. Implicitly Terminate - terminate an instance of the process if there is nothing else to be done Multiple Instances (MI) MI without synchronizing - generate many instances of one activity without synchronizing them afterwards MI with a prior known design time knowledge - generate many instances of one activity when the number of instances is known at the design time (with synchronization) MI with a prior known runtime knowledge - generate many instances of one activity when a number of instances can be determined at some point during the runtime (as in FOR loop but in parallel) MI without a prior runtime knowledge - generate many instances of one activity when a number of instances cannot be determined (as in WHILE loop but in parallel) State-based patterns Deferred Choice - execute one of a number of alternative threads. The choice which thread is to be executed is not based on data that is available at the moment when the execution has reached the deferred choice, but is rather determined by an event (e.g. an application user selecting a task from the worklist, or a message being received by the process execution engine). Interleaved Parallel Routing - execute a number of activities in any order (e.g. based on availability of resources), but do not execute any of these activities simultaneously. Milestone - allow a certain activity at any time before the milestone is reached, after which the activity can no longer be executed. Cancellation Patterns Cancel Activity - stop the execution of an enabled activity Cancel Case - stop the execution of a running process Cancel Wait - continue execution of a running