PostGate

BullMQ vs RabbitMQ in 2026: delays, cron, retries and limits

Library vs broker

BullMQ is a job queue library you import into your app. RabbitMQ is a message broker you run as a separate server and reach from any AMQP client.

The short answer

Background and scheduled jobs inside one app: BullMQ. Routing events between services written in different languages: RabbitMQ.

BullMQ no longer needs Redis

BullMQ 6, released July 30, 2026, added a PostgreSQL backend. It needs PostgreSQL 13 or newer and the pg package. Redis is still the default.

RabbitMQ delays without a plugin

Since RabbitMQ 4.4, quorum queues hold a message until the time set in the x-opt-delivery-time header. The old delayed message plugin is no longer maintained.

Cron lives in BullMQ only

BullMQ Job Schedulers take a cron pattern and a time zone. RabbitMQ has no built-in cron, so recurring work needs a separate process that publishes.

Retries

BullMQ: attempts with fixed or exponential backoff and a failed set you can inspect. RabbitMQ: delivery limit, dead lettering and delayed retry with linear backoff.

Rate limits

BullMQ has a global limiter per queue and can pause on a 429. RabbitMQ prefetch caps unacked messages, which limits concurrency, not requests per second.

Kafka and SQS

Neither is a job scheduler. Kafka is a log for event streams, and SQS delay queues top out at 15 minutes.

Posts scheduled weeks ahead

Keep the post in your database as the source of truth and only enqueue jobs that are due soon, with a deterministic job id.

Comparison table and code

The guide has a feature table, BullMQ code for a delayed job, a cron scheduler and a rate-limited worker, plus a checklist for scheduled posts.

postgate.studio

Read the full guide