BullMQ
by Taskforce.sh (BullForce Labs AB) · Library · also known as Bull
Redis-backed job and message queue for Node.js (with a Python port) offering workers, flows, rate limiting, repeatable jobs and a commercial Pro tier
Overview
BullMQ is a job and message queue library built on Redis, written in TypeScript and released under the MIT license by Taskforce.sh (BullForce Labs AB); it succeeds the earlier Bull library. Producers add jobs with options for delay, priority, attempts and backoff; Worker processes consume them with configurable concurrency, and Lua scripts executed inside Redis keep state transitions atomic. Features include repeatable jobs by cron or interval, rate limiting, job dependencies through flows (parent jobs that wait for children), sandboxed processors in child processes or threads, events for progress and completion, and metrics. A Python implementation shares the data model so that Node and Python workers can process the same queues. BullMQ Pro adds groups, batches and observables under a commercial license, and Taskforce.sh sells a hosted dashboard; Redis-compatible servers such as Valkey and Dragonfly are supported.
BullMQ is the common choice for Node applications that already run Redis and need low-latency background processing. It requires Redis, offers no transactional enqueueing with a relational database, and large job histories must be pruned to keep Redis memory in check.
Editorial note on uncertainty. BullMQ Pro pricing was not reviewed; pricing_model lists paid for the Pro tier without a pricing_url.
Capabilities
- Queues and workers with concurrency and sandboxed processors
- Delayed, prioritized and repeatable (cron) jobs
- Retries with backoff and rate limiting
- Flows for parent-child job dependencies
- Events, progress reporting and metrics
- Node.js and Python workers sharing one queue format
Typical workflows
- Background processing for a Next.js or Express API
- Scheduled scraping or data refresh jobs
- Pipelines of dependent jobs with flows
Strengths
- Low latency and atomic operations via Redis Lua scripts
- Rich job options and TypeScript types
- MIT core with optional commercial extensions
Limitations
- Requires Redis or a compatible server
- No transactional coupling with a SQL database
- Some features reserved to BullMQ Pro
Prerequisites
- Node.js (or Python) and a Redis-compatible server
Who it is for
- Node.js and TypeScript backend developers
Alternatives & comparison
- Apache Kafka
Distributed event streaming platform with durable, partitioned, replayable logs, Kafka Connect connectors and Kafka Streams processing
Open sourceOpen source - NATS
Lightweight Go messaging system with core pub/sub and request-reply plus JetStream persistence, key-value and object stores; a CNCF project
Open sourceOpen source - pg-boss
Node.js job queue that uses PostgreSQL tables and SKIP LOCKED for reliable background jobs, scheduling and retries without a separate broker
Open sourceOpen source - RabbitMQ
Open-source message broker in Erlang supporting AMQP 0-9-1 and 1.0, MQTT, STOMP and Streams, with routing, acknowledgements and quorum queues
Open sourceOpen source - Redis
In-memory key-value data store used as cache, message broker and database, with data structures, Pub/Sub, Streams and, since Redis 8, built-in JSON, search and time-series modules
MixedOpen source
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- LicenseBullMQ LICENSE (MIT)checked Nov 1, 2026
https://github.com/taskforcesh/bullmq/blob/master/LICENSE
Supports: license_spdx, source_model
- Official documentationchecked Nov 1, 2026
- Official sitechecked Nov 1, 2026
- Repositorychecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Verified · Nov 2, 2026