Hi everyone, I’m running into a scalability issue with n8n and would really appreciate some guidance, as I don’t have deep infrastructure knowledge.
I currently have around 30–31 workflows running in parallel, each triggered every 5 minutes. Each execution performs multiple external requests (Supabase queries, HTTP requests for scraping, and some AI processing). Individually, a workflow should take around 1–2 minutes to complete.
However, what I’m observing is that executions start piling up. A workflow starts, then seems to get “stuck” at some point (often around database queries or HTTP requests), and never finishes. Five minutes later, a new execution starts, then another, and so on. After some time, I end up with many executions running simultaneously (some running for over 1–2 hours), all seemingly stuck.
My current hypothesis is that this is not a memory issue (server usage looks relatively low), but rather a concurrency and I/O problem. It seems like too many executions are running at the same time, all making multiple requests to Supabase and external sites, which may be exhausting connection pools or causing requests to hang indefinitely. Since there is no global execution timeout configured, these stuck executions never terminate, and new ones keep getting scheduled.
I’d like to understand if this reasoning makes sense.
More importantly, I’m trying to figure out what is considered a “safe” level of parallelism in n8n. For example, how many workflows can realistically run at the same time without causing this kind of issue? Is there a recommended way to calculate or estimate this based on server specs (e.g., 2 vCPU / 8GB RAM)?
Also, what would be the best practices to handle this situation properly? From what I’ve read so far, I’m considering:
-
Setting a concurrency limit (e.g., N8N_CONCURRENCY_PRODUCTION_LIMIT)
-
Adding a global execution timeout so stuck executions are killed
-
Possibly reducing the number of database calls per execution
-
Or restructuring workflows to be less I/O heavy
My goal is to be able to reliably run 30, 40, or even 50 workflows in parallel without them blocking each other or getting stuck.
Any guidance on how to approach this, or how you would architect this kind of setup in n8n, would be really helpful.
Thanks a lot in advance!