Skip to content

Commit

Permalink
GitBook: [master] one page modified
Browse files Browse the repository at this point in the history
  • Loading branch information
manast authored and gitbook-bot committed Oct 19, 2019
1 parent 45b91c5 commit 69545e1
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions docs/gitbook/what-is-bullmq.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,19 @@ description: General description of BullMQ and its features

# What is BullMQ

Bull is a Node library that implements a fast and robust queue system based on [redis](https://redis.io/).
BullMQ is a [NodeJS](https://nodejs.org) library that implements a fast and robust queue system based on [Redis](https://redis.io/).

Although it is possible to implement queues directly using Redis commands, this library provides an API that takes care of all the low-level details and enriches Redis basic functionality so that more complex use-cases can be handled easily.
The library is designed so that it will fulfil the following goals:

If you are new to 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 microservices or offloading heavy work from one server to many smaller workers, etc.
* 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.

### **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 cases. Check the [Patterns](patterns/producer-consumer.md) section for getting some inspiration and information about best practices.

* [x] **Minimal CPU usage due to a polling-free design**
* [x] **Distributed job execution based on Redis**
* [x] **LIFO and FIFO jobs**
Expand All @@ -23,3 +28,7 @@ If you are new to queues you may wonder why they are needed after all. Queues ca
* [x] **Threaded \(sandboxed\) processing functions**
* [x] **Automatic recovery from process crashes**





0 comments on commit 69545e1

Please sign in to comment.