BullMQ

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

Library
npm
v6.3.9
9,442 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
76%
AGPL 3.0

Abby

Developer Tools · Product Management

166

Statically typed feature flags, remote config, and A/B testing with framework-native SDKs for TypeScript teams.

View details
31
Repo Health
70
Technical
64
Dependency
Built with
TypeScript 76%
MDX 18%
Updated 1 years ago
TypeScript
100%
Other

Activepieces

AI Assistants · Automation · Mcp

24,756

Open-source AI automation platform that converts 280+ workflow integrations into MCP servers for LLMs, with no-code builders and TypeScript extensibility.

View details
92
Repo Health
85
Technical
64
Dependency
Built with
TypeScript 100%
Updated 5 days ago
TypeScript
82%
Other

AFFiNE

Collaboration · Note Taking · Productivity

73,040

Write, draw, and plan in one infinite canvas — the open-source alternative to Notion and Miro that keeps your data yours.

View details
91
Repo Health
87
Technical
67
Dependency
Built with
TypeScript 82%
Rust 11%
Updated 6 days ago
JavaScript
100%
Other

Automatisch

Automation · No Code Platforms

13,979

Self-hosted, no-code workflow automation that keeps your data on your own servers—a privacy-first alternative to Zapier with 90+ integrations.

View details
49
Repo Health
78
Technical
62
Dependency
Built with
JavaScript 100%
Updated 7 months ago
TypeScript
97%
AGPL 3.0

Bigcapital

Invoicing Finance

3,916

Self-hostable double-entry accounting platform with invoicing, inventory, multi-currency, and real-time financial reporting for small and medium businesses.

View details
90
Repo Health
77
Technical
61
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago
TypeScript
93%
MIT

bunqueue

Developer Tools · Devops

570

High-performance job queue for Bun — SQLite persistence, cron scheduling, DLQ, S3 backups, and a native MCP server, all without Redis.

View details
73
Repo Health
83
Technical
72
Dependency
Built with
TypeScript 93%
Updated 3 weeks ago
JavaScript
99%
Other

ChartBrew

Analytics · Databases

4,063

Open-source reporting platform to build live dashboards from SQL, NoSQL, APIs, and SaaS tools with an AI assistant that creates charts from natural language.

View details
90
Repo Health
83
Technical
64
Dependency
Built with
JavaScript 99%
Updated 1 weeks ago
TypeScript
46%
Apache 2.0

claude-mem

AI Agents · AI Development · AI Memory

94,808

Give your AI coding agents persistent memory — claude-mem captures everything that happens during sessions, compresses it with AI, and surfaces the right context in every future session automatically.

View details
86
Repo Health
82
Technical
77
Dependency
Built with
TypeScript 46%
JavaScript 40%
Python 12%
Updated 6 days ago
TypeScript
99%
Apache 2.0

Colanode

Collaboration · Knowledge Management · Team Chat

5,152

Local-first, self-hosted workspace that combines real-time chat, Notion-style pages, and structured databases — all synced via CRDTs so you work offline without losing a keystroke.

View details
46
Repo Health
73
Technical
70
Dependency
Built with
TypeScript 99%
Updated 6 months 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