--- title: "Multi-Threading Flow Design" slug: "multi-threading-flow-design" description: "Learn how multi-threading in Decisions processes Flow items simultaneously and supports parallel execution of synchronous and asynchronous processes." updated: 2026-07-13T17:47:55Z published: 2026-07-13T17:47:55Z canonical: "documentation.decisions.com/multi-threading-flow-design" --- > ## Documentation Index > Fetch the complete documentation index at: https://documentation.decisions.com/llms.txt > Use this file to discover all available pages before exploring further. # Multi-Threading Flow Design ## Overview **Multi-Threading** in Decisions refers to instances where the system executes multiple different **Threads** simultaneously to process batches of items within a Flow. Typically, asynchronous processes are created to run multiple independent processes, however, not all asynchronous processes run on different threads. Some run multiple synchronous processes in parallel. --- ## Example ### Configuring a Flow with the Run Flows For List [Batch Processing] Step The **Run** **Flows** **For** **List** step utilizes a built-in Flow to process a list of items using backend parallel processing. 1. In a Designer Project, click CREATE FLOW and select [**Flow**](/version-10/docs/creating-your-first-flow-2) to create a new Flow. 2. Attach a **Create Data** step from the FAVORITE STEPS category of the **Toolbox** panel. Click SHOW EDITOR.![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1781531895348.png) 3. In the **Data Definitions** window, enter "AccountList" under NAME, select **Account** as the TYPE, and check IS LIST. Click **Save** and close the window.![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1783964856105.png) 4. Attach a **Run** **Flows** **For** **List [Batch Processing]** step from the Toolbox by navigating to **SYSTEM > ADVANCED** to the Done path.![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1781531984972.png) 5. On the **Properties** panel, set the **Input Type** and **Output Type** fields to **Account**.![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1781532028978.png) 6. Under the INPUTS category, map the desired **AccountList** to **Input****List**. If desired, **Constant** map the **Remove Null Results** option.![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1781532057169.png) 7. Under the FLOW category, change **Run** **Behavior** to **ASyncAndWait** and declare a **Queue** **Name.** 8. Under **Thread** **Count**, define the desired number of **Threads** for the step to utilize in parallel. Then, click the EDIT [THREAD FLOW NAME] button. Note on Thread CountNote that since each individual **Thread** on the **Run Flows For List** step is a separate **Flow** process, running too high of a number may impact **System** **performance**. It is advised to use a lower **Thread** **Count** number such as "4" to test the impact of the step on the System.  ![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1781532113651.png)9. From the newly opened Flow Designer, define the desired process logic; map the resulting value to **INPUTS > Output Data** on the **End** step. This example will use the Fetch Entities step to obtain Account items. #### About Process Logic As the description underneath the **Action** **Bar** suggests, the Thread processing **Flow** takes in the **Input** defined on the **Run Flows For List** step and processes through them to return a value for each **item**.![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1781532227330.png)10. Save and close the Flow to return to the main Flow. Configure the rest of the Flow as desired. ### Configuring a Flow with the [Start Linked Flow Async] Step The **Start Linked Flow Async** step is one of the most commonly utilized steps to achieve asynchronous behavior. By using this step, users may achieve Multi-Threaded processing through the use of **Job** **Queues** on the step. 1. From the Flow Designer, add a **[Start Linked Flow Async]** step from the FLOWS category of the Toolbox tab.![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1781532296215.png) 2. On the **Properties** panel under WORK QUEUE, check the ****Manage** **Execution** **Threads**** box. 3. Define a new **ThreadJobName**.![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1781532351086.png)