BullMQ

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

Library
npm
v6.1.2
9,305stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
91/100Excellent
Development Activity100
Maintenance100
Community64
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
88/100Excellent
Architecture92
Code Quality90
Innovation88
Learning Curve75

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

167

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

View details
30
Repo Health
70
Technical
63
Dependency
Built with
TypeScript76%
MDX18%
Updated 1 years ago
TypeScript
99%
Other

Activepieces

Automation · AI Assistants

23,887

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
65
Dependency
Built with
TypeScript99%
Updated today
TypeScript
88%
Other

AFFiNE

Productivity · Project Management · Note Taking

71,668

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
68
Dependency
Built with
TypeScript88%
Updated today
JavaScript
100%
Other

Automatisch

Automation · No Code Platforms

13,936

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
64
Dependency
Built with
JavaScript100%
Updated 6 months ago
TypeScript
97%
AGPL 3.0

Bigcapital

Invoicing Finance

3,846

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

View details
91
Repo Health
77
Technical
64
Dependency
Built with
TypeScript97%
Updated yesterday
TypeScript
91%
MIT

bunqueue

Developer Tools · Devops

535

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

View details
74
Repo Health
83
Technical
76
Dependency
Built with
TypeScript91%
Updated 2 weeks ago
JavaScript
99%
Other

ChartBrew

Analytics · Databases

4,041

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
65
Dependency
Built with
JavaScript99%
Updated 6 days ago
JavaScript
50%
Apache 2.0

claude-mem

AI Agents · AI Development

91,197

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
JavaScript50%
TypeScript48%
Updated today
TypeScript
99%
Apache 2.0

Colanode

Knowledge Management · Team Chat · Collaboration

5,018

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
47
Repo Health
73
Technical
73
Dependency
Built with
TypeScript99%
Updated 4 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

Search