BullMQ guides

BullMQ problems that show up in production and are hard to see from the job states alone. Each guide is checked against the BullMQ source and says which version it was checked on.

How to build a dashboard to monitor BullMQ

What a BullMQ dashboard has to show, the call behind each number and what it costs Redis, a Prometheus export that does not break the scrape, and when to use a ready-made dashboard instead.

Monitoring BullMQ on Postgres

BullMQ 6 on PostgreSQL: the tables it creates, the SQL behind every queue signal, the event table that never shrinks, and how to read without slowing the workers.

Alerting on a BullMQ backlog before it hurts your throughput

Why "waiting above 1,000" alerts at the wrong time, and working code that alerts on the oldest waiting job, the time to drain and workers that stopped making progress.

BullMQ stalled jobs: what they are and how to find them

Stalled is not a job state. Why a job loses its lock, why it runs twice, how to find stalled jobs in Redis and in code, and the worker settings that control it.

Promoting a BullMQ job scheduler job skips the next run

The scheduler's delayed job is its next run. Promoting it runs that run early and drops it from the schedule. Why, in the BullMQ source, and how to run it now without losing one.

Hit a BullMQ problem that deserves a guide? Write to hello@bullpane.com.