Workflows and Synchronous Web Services

Workflows initiated by the synchronous workflows do not go through the workflow queue.

It means that they do not have wait periods and are not assigned to the workflow queue listener. Such workflows are in addition to the number of simultaneous workflows that can be fired through the workflow queue. Sizing a machine based on the number of workflow queue listeners creates an additional load and may negatively affect the performance.

Synchronous web services that fire workflows take more time than asynchronous workflows because the web service returns after the workflow completion. During this time, HTTP threads are held for a longer duration and the maximum concurrent HTTP listener count may be reached.

Synchronous workflows fired through the workflow may return the control to web service before the workflow has completed. This happens when large batches of data are processed by the activity and the activity splits the processing into multiple batches. Once the activity splits the batches, the activity suspends and the web service completes with workflow status as INPROGRESS.