BullMQ

Fast, reliable Redis-based message queue and background job processing for Node.js and TypeScript.

Library
npm
v6.4.1
9,537 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
91 /100 Excellent
Development Activity 100
Maintenance 100
Community 64
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
88 /100 Excellent
Architecture 92
Code Quality 90
Innovation 88
Learning Curve 75

BullMQ is a robust, Redis-backed distributed queue for Node.js (and Bun) that lets you offload work to background workers and process it reliably at scale. It is a full rewrite of the popular Bull library in TypeScript, carefully engineered for atomicity and rock-solid stability using Redis Lua scripts under the hood.

Beyond simple job queues, BullMQ provides advanced primitives such as rate limiting, delayed and repeatable (scheduled) jobs, priorities, retries with configurable backoff, sandboxed processors, and flows for orchestrating parent/child job trees. Client libraries in Python, Rust, Elixir, and PHP make the same queue interoperable across polyglot systems.

What You Get

  • A TypeScript-first Queue/Worker API for producing and consuming jobs backed by Redis
  • Built-in retries with configurable backoff strategies, priorities, and per-queue rate limiting
  • Delayed, repeatable, and cron-scheduled jobs via the job scheduler
  • Flows for orchestrating parent/child job trees and fan-in/fan-out dependencies
  • Sandboxed (separate-process) job processors and real-time queue events
  • Interoperable client libraries for Python, Rust, Elixir, and PHP against the same queues

Common Use Cases

  • Sending emails, notifications, and webhooks outside the web request lifecycle
  • Processing images, videos, and other CPU-heavy media asynchronously
  • Scheduling recurring and delayed tasks such as reports, cleanups, and reminders
  • Orchestrating multi-step pipelines where jobs depend on the output of other jobs
  • Smoothing traffic spikes and enforcing rate limits against third-party APIs

Under The Hood

Architecture — BullMQ is organized around a small set of core classes in src/classes/ — Queue (producer), Worker (consumer), Job, QueueEvents, FlowProducer, and JobScheduler — that all share a RedisConnection and coordinate state entirely in Redis. The hard concurrency guarantees live in src/commands/, a set of 51 hand-written Lua scripts (moveToActive, moveToFinished, addJob, retryJob, etc.) that execute atomically inside Redis so that multiple workers can claim, complete, and retry jobs without races; the TypeScript layer is largely an ergonomic wrapper that loads these scripts, packs arguments, and marshals results.

Tech Stack — Written in TypeScript and compiled to both CJS and ESM. Runtime dependencies are deliberately lean: ioredis (with optional node-redis and Bun-redis adapters) for Redis connectivity, cron-parser for repeatable-job scheduling, msgpackr for compact job serialization, semver, and tslib. The build pipeline uses tsc, madge for circular-dependency checks, and cpx to copy Lua scripts into the distributed packages, including into the sibling Python, Rust, Elixir, and PHP client trees.

Code Quality — Quality is high: roughly 35 Mocha/Vitest test files under tests/ cover queues, workers, flows, rate limiting, scheduling, cluster behavior, and multiple Redis adapters, and the project runs semantic-release, husky/lint-staged, ESLint, Prettier, and an osv-scanner supply-chain config. Interfaces and options are thoroughly documented with TSDoc, and the codebase is clearly structured with dedicated interfaces, types, and enums directories.

API Design — The public API is concise and intuitive: you construct a new Queue(name) to add jobs and a new Worker(name, processor) to consume them, with strongly typed job data, options, and events. Getting started requires only a Redis connection and a few lines of code, while advanced needs (flows, schedulers, sandboxed processors) are exposed as clearly named additional classes rather than configuration flags, and the extensive official documentation at docs.bullmq.io backs it up.

Used by 41 apps in this directory

TypeScript
96%
Other

Infisical

Devops · Security

29,961

The open-source platform for secrets, certificates, privileged access, and AI agent security — all in one self-hostable system.

View details
91
Repo Health
84
Technical
64
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
TypeScript
52%

Kener

Devops · Monitoring

5,216

Stunning, self-hosted status pages with real-time uptime monitoring, incident management, and multi-channel notifications in a single Docker container.

View details
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 52%
Svelte 45%
Updated 1 weeks ago
TypeScript
96%
Other

Langfuse

AI Development · Monitoring

36,276

Open source AI engineering platform for LLM observability, prompt management, evaluation, and debugging — self-host in minutes or use Langfuse Cloud.

View details
92
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
TypeScript
78%
LGPL 3.0

Latitude

AI Agents · Monitoring

4,733

Open-source AI agent monitoring that catches what will break next before your users do.

View details
87
Repo Health
88
Technical
67
Dependency
Built with
TypeScript 78%
Python 11%
Rust 11%
Updated 1 weeks ago
TypeScript
94%
AGPL 3.0

Laudspeaker

Automation · Marketing

2,629

Open-source customer engagement platform for building visual, event-triggered messaging journeys across email, SMS, push, in-app, and webhooks.

View details
45
Repo Health
66
Technical
62
Dependency
Built with
TypeScript 94%
Updated 3 months ago
TypeScript
88%
Apache 2.0

Medplum

Authentication · Databases · Developer Tools

2,760

An open-source, FHIR-native healthcare platform that gives developers a compliant backend, authentication, a React component library, and serverless bots to build clinical applications in weeks instead of years.

View details
93
Repo Health
90
Technical
71
Dependency
Built with
TypeScript 88%
Updated 1 weeks ago
TypeScript
87%
MIT

medusa

Ecommerce

36,897

The most flexible open-source commerce platform — build B2C, B2B, and marketplace applications with modular, composable commerce primitives.

View details
94
Repo Health
87
Technical
63
Dependency
Built with
TypeScript 87%
JavaScript 12%
Updated 1 weeks ago
TypeScript
96%
AGPL 3.0

Midday

Invoicing Finance · Productivity

15,091

All-in-one AI-powered business operations platform for freelancers and solo entrepreneurs to manage invoicing, time tracking, banking, and financial intelligence.

View details
51
Repo Health
78
Technical
67
Dependency
Built with
TypeScript 96%
Updated 4 months ago
TypeScript
98%
Other

Novu

Developer Tools

40,195

Open-source communication infrastructure that connects your products and AI agents to every channel your users live on — Inbox, Email, SMS, Push, Chat, and more.

View details
93
Repo Health
80
Technical
64
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers