# For parallel execution in Node, should i use the functional API？

**URL:** <https://forum.langchain.com/t/for-parallel-execution-in-node-should-i-use-the-functional-api/3812>\
**Category:** LangGraph\
**Tags:** python-help\
**Created:** [May 28, 2026, 5:47am UTC](https://forum.langchain.com/t/for-parallel-execution-in-node-should-i-use-the-functional-api/3812 "2026-05-28T05:47:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![seelow](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/seelow/32/3064_2.png) [@seelow](https://forum.langchain.com/u/seelow)\
**Post date:** [May 28, 2026, 5:47am UTC](https://forum.langchain.com/t/for-parallel-execution-in-node-should-i-use-the-functional-api/3812/1 "2026-05-28T05:47:18Z")

</div>

in graph api

```auto
# Parallel processing of multiple data sources
workflow.add_node("fetch_news", fetch_news)
workflow.add_node("fetch_weather", fetch_weather)
workflow.add_node("fetch_stocks", fetch_stocks)
workflow.add_node("combine_data", combine_all_data)

# All fetch operations run in parallel
workflow.add_edge(START, "fetch_news")
workflow.add_edge(START, "fetch_weather")
workflow.add_edge(START, "fetch_stocks")

# Combine waits for all parallel operations to complete
workflow.add_edge("fetch_news", "combine_data")
workflow.add_edge("fetch_weather", "combine_data")
workflow.add_edge("fetch_stocks", "combine_data")

```

in this example，Different nodes fetch different data sources.

my question is

if i have some items to fetch news，What should I do?

I have two ideas：

1. in one node，use ThreadPoolExecutor Control concurrency

2 like this pic, use functional api

 ![image](https://canada1.discourse-cdn.com/flex007/uploads/langchain/original/2X/a/a8918009986039db4fa97908b9b2bacdbd9747e4.png)

Which method is better? or others ?

Any help would be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![seelow](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/seelow/32/3064_2.png) [@seelow](https://forum.langchain.com/u/seelow)\
**Post date:** [May 28, 2026, 6:14am UTC](https://forum.langchain.com/t/for-parallel-execution-in-node-should-i-use-the-functional-api/3812/2 "2026-05-28T06:14:02Z")

</div>

when i read this, i think this is best

> [@Best practices for parallel nodes (fanouts)](https://forum.langchain.com/t/best-practices-for-parallel-nodes-fanouts/1900/2):
>
> Hi @rkauf as for me, I go by these rules: Understand the execution model (super-steps) LangGraph executes in discrete super-steps; nodes that are scheduled together run in parallel, then the system synchronizes before the next step. This is inspired by Pregel’s message-passing model. Use Send for dynamic fan-out, Command for update+route For map-reduce/orchestrator-worker patterns, return a list of Send(node, arg) to dynamically spawn workers. Use Command(update=..., goto=...) when yo…
