Hi n8n Team,
After reading the n8n architecture documentation, I’m still left with a bunch of open questions that I hope someone more knowledgable than I could help answer:
I understand from the Scaling docs that Queue Mode is the best way to make n8n performant in the long-term, but I’m trying to understand if there’s any middle ground here.
Specifically, if I start up a small cluster of n8n containers that:
- are all running in
EXECUTIONS_MODE=regularand - they’re all connected to the same PostgreSQL database and
- they’re all behind the same load balancer, then…
-
It seems logically that this configuration would support a large number of n8n users being able to interact with the n8n Editor UI…
-
And it seems logical for any external webhook processing, that the load balancer might evenly balance those requests across the cluster…
-
But, for scheduled workflows, is the n8n codebase smart enough to distribute those tasks evenly across all containers? Or will only one container ever run those scheduled workflows?
-
If scheduled workflows do happen to get evenly distributed across containers, does that coordination happen in the PostgreSQL DB? Or would you still need to configure the containers to coordinate via Redis? Or, do the containers not even bother using Redis unless
EXECUTIONS_MODE=queueis enabled?
In short, the documentation does a good job of telling you what EXECUTIONS_MODE=queue does, but the documentation doesn’t really explain clearly what EXECUTIONS_MODE=regular does when in a cluster configuration.
I’m hoping someone can help fill in the blanks here.
Thanks in advance!