# Step 8: Design Parallel Paths of Execution

In the preceding step, you created a For Each loop to iterate over a set of repeating elements in a Request for Quote document. In this step, you design the activities within the For Each loop. That is, you design the activities that are performed for each iteration your business process makes through the loop.

When your business process interacts with multiple different systems, as is the case during the price and availability processing in this scenario, you can increase throughput in the business process by executing tasks in parallel. You add Parallel nodes to your business process when you want to create two or more such parallel branches of execution.

In our example scenario, the business process must determine both price and availability information so that a quote can be prepared and returned to the client. This business process can benefit from parallelism because it communicates with two external systems: one for the price calculation; one for the availability calculation. The business process expects a response from each of the external systems.

The external systems can be any resource (other business processes, Web services, EJBs, databases, file systems, and so on) that returns the information your business process requires. Your business process interacts with the resources via controls. The tutorial uses two Web services: one returns the price for each widgetID specified in the client's request document; a second service returns availability information, based on the widgetID and the quantity specified in the request document. The controls with which your RequestQuote business process interacts are provided for you in your project folder: \Tutorial_Process_ApplicationWeb\requestquote\services. The controls are PriceProcessorControl.jcx and AvailProcessorControl.jcx.

Related Topics

Understanding Parallel Execution in Your Business Process