Asynchronous Invoking of Sub-Flows/Child Processes

Last Updated: 12/03/2015 Introduced in Verision: 2.0

There are two ways to call a subflow:

1) The “non-asynchronous” method, which is what is used when you simply drag and drop a flow into the Flow Designer workspace, or use the Flows > [Pick or Create] flow component to introduce a flow.

2) The asynchronous invocation method, which is what is used when you drag and drop the Flows > Start Linked Flow Async (or Fire and Forget Linked Flow) component into the Flow Designer workspace. (NOTE: The step “Start Linked Flow Async” component is the same as the Fire and Forget component.)

Each method of invocation has its benefits, and part of the workflow planning process should be to decide which method to use for subflows. The key difference between the two is that the non-asynchronous method will cause the parent flow to remain in a wait state (i.e. keep running) until the child process completes. The Fire and Forget method differs in that the parent/calling flow does not wait for the subflow to complete; control is immediately given back to the parent flow. The consequence of this latter method is that the relationship between the two flows breaks, meaning that the subflow is now an independently-executing flow and has no data link to its parent.

In the screenshot below, the Error Handling Flow is a Fire and Forget Linked Flow step. This type of step simply initiates another flow (in this case, a standard error handling flow that tasks an administrator to look into the error), but does not wait for that flow to complete. The process moves on to the End step regardless of the status of the Error Handling flow. In an error scenario, it is common to use this type of flow linking so the parent “calling” process (which has an error) does not keep running.




Additional Resources