Automation · n8n

Scaling n8n in Production

A single n8n process handles a surprising amount, until it doesn't. Scaling n8n means switching to queue mode and adding workers — but only after you know your bottleneck.

John Kihiu12 min read

In its default "main" mode, n8n runs everything in one process — triggers, executions, and the editor together. That is fine for modest load, but it caps throughput and makes a heavy workflow able to starve everything else. Scaling n8n is mostly one architectural move — queue mode — plus knowing which resource is actually limiting you.

Switch to queue mode

Queue mode splits n8n into a main process that handles triggers and the UI, a Redis queue that holds pending executions, and a pool of worker processes that pull from the queue and run workflows. Now executions run in parallel across workers, a slow workflow no longer blocks the others, and you scale throughput by adding workers rather than by making one process bigger.

Bash · enable queue mode
EXECUTIONS_MODE=queue
QUEUE_BULL_REDIS_HOST=redis
# Run the main instance, then scale workers independently:
#   n8n worker   (× N — add workers to add throughput)

Find the real limit first

Do not add workers blindly — identify what is actually constraining you:

Tune concurrency and retention

Each worker runs multiple executions concurrently; set that concurrency to match the work (higher for I/O-bound, lower for CPU-bound). And control execution-data retention — saving full data for every execution forever bloats the database and slows everything. Prune old executions and save less detail for successful runs to keep the database healthy as volume grows.

Queue depth tells you when to scale

The honest signal for adding workers is a queue that is consistently growing — executions arriving faster than they drain. If the queue stays shallow, more workers do nothing but consume resources. Scale to the queue depth, not to a hunch.

Scale n8n by moving to queue mode with Redis and independent workers, but diagnose the bottleneck first — often it is an external API or the database, not n8n's compute. Tune worker concurrency to the workload, prune execution data, and let a growing queue, not guesswork, tell you when to add capacity.

John Kihiu
Acumatica ERP Developer · Laravel Engineer

Independent software engineer in Nairobi specialising in Acumatica customisations, Laravel backends, and tax fiscalisation integrations across East and Southern Africa.