For a given process instance, multiple instances of an activity are created. The number of instances required is known at design time. Once initiated, these instances are independent of each other and run concurrently. Subsequent activities can only be triggered after the instances are synchronized at their completion.
In the example, a purchasing agent decides at runtime how many suppliers will be allowed to bid. This number is used to spawn that number of instances in the synchronous Request Quote from Supplier activity. As each supplier bids in the child sub-process, the bid information is carried back into this parent process.
When the same number of bids reach the Join activity that were spawned upstream, the instance continues on. Use this pattern when there is a need to return information back from the sub-process. In this example the bids of the individual suppliers are compared and the contract is awarded to the lowest bidder in the Award Contract to Lowest Bidder activity.