BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence.
The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream services.
The project covers a broad range of operational capabilities, including priority-based execution, exactly-once processing, and recurring job automation via cron expressions. It also includes observability tools for progress tracking, distributed flow tracing, and Prometheus metrics export, as well as administrative controls for queue state management and graceful worker shutdowns.
BullMQ provides integration utilities for the NestJS dependency injection system and supports managed Redis clusters.