Skip to content

Files

Latest commit

46e2617 · Sep 20, 2024

History

History
This branch is 261 commits behind taskforcesh/bullmq:master.

gitbook

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jan 17, 2024
Nov 18, 2023
Dec 4, 2023
Sep 13, 2024
Jan 16, 2024
Sep 11, 2024
Sep 6, 2024
Sep 10, 2024
Dec 22, 2023
Jun 28, 2023
Aug 31, 2024
Sep 20, 2024
Apr 16, 2021
description
General description of BullMQ and its features

What is BullMQ

BullMQ is a Node.js library that implements a fast and robust queue system built on top of Redis that helps in resolving many modern age micro-services architectures.

The library is designed so that it will fulfill the following goals:

  • Exactly once queue semantics, i.e., attempts to deliver every message exactly one time, but it will deliver at least once in the worst case scenario*.
  • Easy to scale horizontally. Add more workers for processing jobs in parallel.
  • Consistent.
  • High performant. Try to get the highest possible throughput from Redis by combining efficient .lua scripts and pipelining.

View the repository, see open issues, and contribute back on GitHub!

Features

If you are new to Message Queues, you may wonder why they are needed after all. Queues can solve many different problems in an elegant way, from smoothing out processing peaks to creating robust communication channels between micro-services or offloading heavy work from one server to many smaller workers, and many other use cases. Check the Patterns section for getting some inspiration and information about best practices.

  • Minimal CPU usage due to a polling-free design
  • Distributed job execution based on Redis
  • LIFO and FIFO jobs
  • Priorities
  • Delayed jobs
  • Scheduled and repeatable jobs according to cron specifications
  • Retries of failed jobs
  • Concurrency setting per worker
  • Threaded (sandboxed) processing functions
  • Automatic recovery from process crashes
  • Parent-Child dependencies

Used by

BullMQ is used by many organizations big and small, here are some notable examples: