Principles of Workflow Scheduling
At this point you should have a good idea of how to build simple workflows. We still have not yet discussed features such as error handling or compensation which are critical to building any real workflow. In order to do so, however, we need to explain how the workflow runtime schedules activities. Otherwise, you will have a mistaken notion of how the more complicated scenarios operate.
Each workflow instance runs on one thread.1 The workflow runtime maintains a FIFO queue of activities that are ready to execute in a given workflow instance. In addition, activity scheduling is non-preemptive. Until an executing activity either yields because it is waiting for a notification of some event, ...