Bull logo

Bull

Premium Queue package for handling jobs and messages in NodeJS

What is Bull?

The fastest, most reliable, Redis-based queue for Node. Carefully written for rock solid stability and atomicity.
Bull is a tool in the Background Processing category of a tech stack.
Bull is an open source tool with 15K GitHub stars and 1.4K GitHub forks. Here’s a link to Bull's open source repository on GitHub

Who uses Bull?

Companies
25 companies reportedly use Bull in their tech stacks, including Pier, Care, and Amp X.

Developers
42 developers on StackShare have stated that they use Bull.

Bull Integrations

Pros of Bull
2
Automatic recovery from process crashes
1
Ease of use
1
Based on Redis

Blog Posts

JavaScriptGitHubNode.js+29
14
13418

Bull's Features

  • Minimal CPU usage due to a polling-free design.
  • Robust design based on Redis.
  • Delayed jobs.
  • Schedule and repeat jobs according to a cron specification.
  • Rate limiter for jobs.
  • Retries.
  • Priority.
  • Concurrency.
  • Pause/resume—globally or locally.
  • Multiple job types per queue.
  • Threaded (sandboxed) processing functions.
  • Automatic recovery from process crashes.

Bull Alternatives & Comparisons

What are some alternatives to Bull?
Buffalo
Buffalo is Go web framework. Yeah, I hate the word "framework" too! Buffalo is different though. Buffalo doesn't want to re-invent wheels like routing and templating. Buffalo is glue that wraps all of the best packages available and makes them all play nicely together.
Sidekiq
Sidekiq uses threads to handle many jobs at the same time in the same process. It does not require Rails but will integrate tightly with Rails 3/4 to make background processing dead simple.
Hangfire
It is an open-source framework that helps you to create, process and manage your background jobs, i.e. operations you don't want to put in your request processing pipeline. It supports all kind of background tasks – short-running and long-running, CPU intensive and I/O intensive, one shot and recurrent.
Resque
Background jobs can be any Ruby class or module that responds to perform. Your existing classes can easily be converted to background jobs or you can create new classes specifically to do work. Or, you can do both.
Beanstalkd
Beanstalks's interface is generic, but was originally designed for reducing the latency of page views in high-volume web applications by running time-consuming tasks asynchronously.
See all alternatives

Bull's Followers
113 developers follow Bull to keep up with related blogs and decisions.