Describe the problem/error/question
Hi n8n community,
We are running a self-hosted n8n instance in queue mode and are looking for a way to achieve better workflow isolation by dedicating specific workers to specific workflows.
Our Goal & Use Case:
We have different types of workflows with varying priorities and resource needs. For example:
-
High-Priority Workflows: These are time-sensitive, lightweight tasks (e.g., real-time webhook processing) that need to execute immediately.
-
Long-Running/Batch Workflows: These are resource-intensive jobs (e.g., daily data syncs, report generation) that can take a significant amount of time to complete.
The Problem:
Currently, in our queue mode setup, any available worker can pick up any workflow from the queue. This can lead to a situation where all workers are occupied by long-running batch jobs, causing significant delays for our high-priority, time-sensitive workflows.
The Question:
Is it possible to assign or “pin” specific workflows to a dedicated set of workers?
Ideally, we’d love to have a setup like this:
-
Worker Group A (High-Priority Pool): Only executes
Webhook_Processing_WFandRealtime_Alert_WF. -
Worker Group B (Batch Job Pool): Only executes
Daily_Sync_WFandWeekly_Report_WF.
This would ensure that there are always workers available for critical tasks, effectively isolating them from the heavy, non-critical jobs. I have gone through the documentation on queue mode and scaling, but I couldn’t find a direct configuration for this kind of workflow-to-worker routing.
Is there a built-in feature, a configuration trick, or a recommended architectural pattern to achieve this?
What is the error message (if any)?
There is no error message. This is a question about system design and configuration for workflow prioritization.
Please share your workflow
N/A. This question is not about a specific workflow but about the overall architecture of the n8n worker and queue system.
Share the output returned by the last node
N/A.
Information on your n8n setup
-
n8n version:
1.101.1 -
Database (default: SQLite):
PostgreSQL -
n8n EXECUTIONS_PROCESS setting (default: own, main):
default -
Running n8n via (Docker, npm, n8n cloud, desktop app):
Docker -
Operating system:
Linux