--- title: "Multi-Threading Flow Design" slug: "multi-threading-flow-design" tags: ["multi-threading", "async", "synchronous"] updated: 2025-06-25T17:24:55Z published: 2025-06-25T17:24: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**](/v9/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/2025-06-17_14h43_07.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/2025-06-17_14h42_35.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/2025-06-17_14h45_49.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/2025-06-17_14h46_52.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/2025-06-17_14h48_24.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/2025-06-17_14h50_40.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/2025-06-25_13h21_57.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/2025-06-25_13h23_06.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/2025-06-25_13h24_02.png) --- For further information on Flows, visit the [Decisions Forum](https://community.decisions.com/categories/Flows).