BullMQ

Node.js library for Redis-backed job queues, handling retries, delays, priorities and rate limiting for background processing.

Works with AI agents:llms.txt
Ask your AI about this, with this page as the source:ChatGPT ↗Claude ↗Perplexity ↗

BullMQ is a job queue library you add to your own application. Your web code puts a job on a queue, and separate worker processes pick it up and run it, so slow tasks like sending email or calling an LLM run outside the request.

The whole model is four classes: Queue (add, pause and inspect jobs), Worker (process them), QueueEvents (listen for completions and failures) and FlowProducer (parent and child jobs that depend on each other). Queue state lives in Redis by default, or, in newer versions, in PostgreSQL 13+ through an optional backend with the same API. Workers can run on one machine or many. The main library is for Node.js, with ports for Python, Elixir, PHP, .NET and Rust.

What you get: delayed, prioritized and repeating jobs, retries with backoff, deduplication, global concurrency and rate limits, sandboxed processors for CPU-heavy work, and Prometheus and OpenTelemetry hooks. There is nothing to sign up for; you run Redis (self-managed or a host such as ElastiCache, or a tested alternative such as Dragonfly) and your own workers. BullMQ Pro, a commercial drop-in build, adds features such as job groups, plus support from the authors.

The catch is that you operate the infrastructure. Redis must be set to persist data and never evict keys, workers need sensible reconnect settings, and a worker that blocks the event loop can let jobs "stall" and be retried or failed. There is no hosted dashboard; third-party tools such as Taskforce.sh fill that gap.

Where it fits

How BullMQ itself is built

3 tools, from its own code, website and Product Hunt page.

Who uses it

1 makers' products, each linked to the source that shows it, and 60 open-source projects that declare it in their code.

The maker says so 1Declared in code 60How evidence is collected →
PostizSocial media scheduling and analytics tool for planning, AI-assisted drafting, and auto-…

“This is the bread and butter of Postiz, this is how we schedule all the posts.”

Background Jobs & CronMaker says so · source ↗

Open source: a project that declares BullMQ as a dependency in its public code — verifiable, but not necessarily a live product.

What makers say

1 makers on why they use BullMQ, in their own words on Product Hunt.

This is the bread and butter of Postiz, this is how we schedule all the posts.
PostizSep 2026 ↗

Loved and watch-outs

Themes that recur in makers' words and Hacker News comments, each linked to what it summarises.

Most loved
  • It is a mature, well-liked production queue on Redis, adding scheduled and cron jobs in a few lines. HNHN 2HN 3HN 4
  • Teams that hit throughput limits with Postgres-backed queues moved to it and stopped fiddling with tuning. HNHN 2
  • Its architecture is simple, with the API pushing to Redis and workers pulling, and it gets high availability through Redis Sentinel or Cluster. HNHN 2
  • NestJS decorators make adding it to an existing app nearly effortless. HN
Watch-outs
  • It requires running Redis as extra infrastructure and another single point of failure next to the main database. HNHN 2HN 3
  • It is a queue, not a workflow engine, so teams hand-build durable multi-step workflows on top of it. HNHN 2

Reliability and open issues

Most wanted on GitHubOpen on 2026-10-04 in taskforcesh/bullmq, with activity in the last year — issues and feature requests by 👍.

Who switches

Public pull requests on GitHub since Oct 2024 whose title says "X to Y" — real code changes moving a project from one tool to another, by developers in general. Open a row to see the pull requests.

Trigger.dev → BullMQ3 PRs
BullMQ → Temporal3 PRs

Alternatives to BullMQ

All alternatives by situation →

Questions makers ask about BullMQ

Do I need Redis, or can I use Postgres?

Redis is the default and most tested backend, but BullMQ also ships an optional PostgreSQL backend (PostgreSQL 13 or newer) that runs the same Queue and Worker API, for teams that would rather not run Redis or want jobs stored next to their relational data. source ↗

How should Redis be configured for production?

Turn on persistence (BullMQ recommends AOF with roughly one fsync per second) and set maxmemory-policy to noeviction, because BullMQ breaks if Redis evicts keys. Many hosted Redis services do not enable persistence by default. source ↗

Which Redis alternatives and hosts work?

BullMQ needs Redis 6.2.0 or newer compatibility, and not every Redis alternative behaves correctly. The docs list vendors that are tested regularly, including Dragonfly, and hosting notes for AWS ElastiCache and MemoryDB. source ↗

Can I use BullMQ from Python?

Yes. There is a Python package installed with pip that uses asyncio and provides Queue and Worker classes against the same Redis queues. source ↗

What happens if a worker crashes mid-job?

Active jobs must keep renewing a lock. If a worker stops doing so, the job is detected as stalled and moved back to waiting, or failed permanently once it exceeds maxStalledCount (default 1). CPU-heavy code that blocks the event loop can also trigger stalls. source ↗

Can I migrate from Bull to BullMQ in place?

Not safely; the two have diverged too far for backward compatibility. The recommended route is to create new queues for BullMQ, run both sets of workers until the old Bull queues drain, then retire them. source ↗

What does BullMQ Pro add?

It is a commercial drop-in replacement with extra features, such as job groups with their own concurrency and rate limits, plus dedicated support from the authors, licensed per organization with a free trial. source ↗

Is BullMQ free?

Yes — there is a free tier a small product can run on; paid use starts at $139/mo (Pro). source ↗

Is BullMQ open source or self-hostable?

Open source, and you can self-host it. source ↗

Can AI coding agents work with BullMQ?

It serves an llms.txt docs index.

Who uses BullMQ?

1 makers' products we track, each with a source, and 60 open-source projects declare it in their code. source ↗