Do workflow nodes run in parralell?

I have a workflow that has a bunch of nodes firing one after the other.
At some point, the a node breaks the series chain and fires 3 nodes in parallel.
These 3 nodes are firing openAI API calls which can take 3-12 seconds to respond.
I fire them in parallel so that I can get them all back as fast as possible, as the result of each one is then used to fire a 4th node that is in series, after the 3 openAI nodes.

What I want to know is, does workflows only fire one API call at a time? I say this because it seems like the openAI calls happen one after the other, instead of all firing at once.
Any ideas on why and if there is a workaround for this?

Thanks!

1 Like

Hi Thomas! Webhook Workflows allow concurrent execution; I believe we cap resource query parallelism at 50 max behind the scenes. With Scheduled Workflows, each run must complete before another run starts. Though it sounds like you might be asking specifically about queries within a Workflow?

Hey Victoria,

The issue is I have a few functions running in parralell that each lead up to a OpenAI call that takes around 15 seconds to return.

From my tests, Workflows waits for each of those openAI calls to be completed before it starts the next set of functions that proceed the other OpenAi calls.

Does that make sense?

Just wanted to let you know that there's now a request tracking this! Thank you for adding your comments here.

The current workaround is to fire off another workflow for each thing you need to happen in parallel. Those will execute at the exact same time - blocks wont.

Hi Victoria!
I'm also subscribing to this request. In my case I'm experiencing the same issue with a much simpler situation. My workflow calls a REST API and, in parallel, should be calling another MYSQL Block.

However Logs are showing those blocks are run in serie

image

Can you please confirm if there's a workaround for that?

Thanks a lot for your help!

1 Like

Hey Adam! So sorry for the delayed response here. What is your ideal use case for running these blocks in series and not in parallel? Happy to think through workarounds with you (maybe some async JS?)