---
title: "Multi-Threading Flow Design"
slug: "multi-threading-flow-design"
updated: 2025-06-25T17:24:55Z
published: 2025-06-25T17:24:55Z
---

> ## 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).
