Isolating Workflows: Assigning Specific Workflows to Dedicated Workers in Queue Mode

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_WF and Realtime_Alert_WF.

  • Worker Group B (Batch Job Pool): Only executes Daily_Sync_WF and Weekly_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

1 Like

How To Create This Lanes ?

@pllusin Have you found a way to handle this?