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
93%
AGPL 3.0

CourseLit

Blogging · Ecommerce

1,284

Open-source, self-hosted LMS for selling online courses, digital downloads, and building communities on your own branded website.

View details
63
Repo Health
74
Technical
67
Dependency
Built with
TypeScript 93%
Updated 1 weeks ago
TypeScript
95%
AGPL 3.0

Docmost

CMS · Collaboration · Note Taking

22,079

Self-hosted collaborative wiki and knowledge base with real-time editing, diagrams, AI assistance, and enterprise access controls — a modern alternative to Confluence and Notion.

View details
89
Repo Health
70
Technical
66
Dependency
Built with
TypeScript 95%
Updated 6 days ago
TypeScript
92%
AGPL 3.0

Documenso

Digital Signiture

15,537

Self-hosted, open-source DocuSign alternative with legally binding PDF signatures, multi-party workflows, and a full REST and tRPC API.

View details
93
Repo Health
79
Technical
67
Dependency
Built with
TypeScript 92%
Updated 1 weeks ago
TypeScript
98%
Other

Dokploy

Devops · Hosting Control Panel · Security

37,989

Self-hosted PaaS that deploys apps and databases on your own VPS using Docker, Traefik, and multi-build-system orchestration

View details
89
Repo Health
76
Technical
64
Dependency
Built with
TypeScript 98%
Updated 6 days ago
TypeScript
91%
Other

FastGPT

AI Agents · AI Development

29,900

Build, debug, and deploy knowledge-based AI agents with a visual workflow editor, RAG retrieval, and support for any OpenAI-compatible LLM.

View details
93
Repo Health
84
Technical
66
Dependency
Built with
TypeScript 91%
Updated 6 days ago
TypeScript
72%
AGPL 3.0

Firecrawl

AI Development · Developer Tools

194,745

Turn any website into clean, LLM-ready data with a single API call — no proxy headaches, no scraping complexity.

View details
89
Repo Health
83
Technical
65
Dependency
Built with
TypeScript 72%
Python 12%
Updated 6 days ago
TypeScript
62%
Other

Flowise

AI Development · Automation · Developer Tools

55,521

Drag-and-drop visual builder for AI agents, RAG pipelines, and multi-agent systems—deploy anywhere in minutes.

View details
75
Repo Health
77
Technical
63
Dependency
Built with
TypeScript 62%
JavaScript 27%
Updated 2 months ago
TypeScript
97%
Other

Formbricks

Analytics · Design Tools · Forms Surveys

13,138

Open-source experience management platform for in-app, website, email, and link surveys — privacy-first and fully self-hostable.

View details
93
Repo Health
81
Technical
66
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago
TypeScript
83%
Apache 2.0

Grist

Databases · No Code Platforms

11,991

A modern relational spreadsheet that combines Python-powered formulas, drag-and-drop dashboards, and granular access controls in a self-hostable, SQLite-backed data platform.

View details
91
Repo Health
93
Technical
63
Dependency
Built with
TypeScript 83%
Python 11%
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