BullMQ
Fast, reliable Redis-based message queue and background job processing for Node.js and TypeScript.
Repository Health
Technical Analysis
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
Infisical
Devops · Security
The open-source platform for secrets, certificates, privileged access, and AI agent security — all in one self-hostable system.
Kener
Devops · Monitoring
Stunning, self-hosted status pages with real-time uptime monitoring, incident management, and multi-channel notifications in a single Docker container.
Langfuse
AI Development · Monitoring
Open source AI engineering platform for LLM observability, prompt management, evaluation, and debugging — self-host in minutes or use Langfuse Cloud.
Latitude
AI Agents · Monitoring
Open-source AI agent monitoring that catches what will break next before your users do.
Laudspeaker
Automation · Marketing
Open-source customer engagement platform for building visual, event-triggered messaging journeys across email, SMS, push, in-app, and webhooks.
Medplum
Authentication · Databases · Developer Tools
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.
medusa
Ecommerce
The most flexible open-source commerce platform — build B2C, B2B, and marketplace applications with modular, composable commerce primitives.
Midday
Invoicing Finance · Productivity
All-in-one AI-powered business operations platform for freelancers and solo entrepreneurs to manage invoicing, time tracking, banking, and financial intelligence.
Novu
Developer Tools
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.