Skip to main content

BullMQ

The fastest, most reliable Redis-based distributed queue for Node.js. Carefully written for rock solid stability and atomicity.

Why BullMQ?

BullMQ is a Node.js library that implements a fast and robust queue system built on top of Redis. It helps resolve many modern microservices architecture challenges with exactly-once queue semantics, horizontal scalability, and high performance.

Lightning Fast

Optimized Redis scripts and pipelining deliver maximum throughput with minimal CPU usage

Rock Solid Reliability

Exactly-once delivery semantics with automatic recovery from process crashes

Horizontally Scalable

Add more workers to process jobs in parallel across multiple servers

Multi-Language

Native support for Node.js, Python, Elixir, and PHP implementations

Key Features

Job Scheduling

Schedule jobs for future execution or set up repeatable jobs with cron patterns

Flow Control

Create complex job dependencies with parent-child relationships

Rate Limiting

Control job processing rates to prevent overwhelming downstream services

Job Priorities

Process important jobs first with flexible priority levels

Retries & Backoff

Automatic retry logic with exponential backoff strategies

Metrics & Telemetry

Built-in metrics and OpenTelemetry support for monitoring

Quick Example

Get started with BullMQ in just a few lines of code:
import { Queue } from 'bullmq';

const queue = new Queue('image-processing');

// Add a job to the queue
await queue.add('resize', {
  imagePath: '/path/to/image.jpg',
  width: 800,
  height: 600
});

Trusted by Leading Companies

BullMQ is used by organizations around the world, including Microsoft, Vendure, Datawrapper, NestJS, Langfuse, and many more.

Get Started

Quick Start

Get up and running with BullMQ in under 5 minutes

Core Concepts

Learn about queues, workers, jobs, and events

API Reference

Explore the complete API documentation

Patterns & Best Practices

Learn proven patterns for production use

Build docs developers (and LLMs) love