Need advice about which tool to choose?Ask the StackShare community!

Bull

74
113
+ 1
4
Kue

42
88
+ 1
2
Add tool

Bull vs Kue: What are the differences?

Introduction

In this Markdown code, we will provide the key differences between Bull and Kue, two popular job queue libraries in Node.js.

  1. Job Priority: One key difference between Bull and Kue is how they handle job priorities. Bull allows jobs to have priority levels, which can be set when a job is added to the queue. This enables developers to control the order in which jobs are processed based on their priority. Kue, on the other hand, does not have built-in support for job priorities. All jobs are processed in the order they are added to the queue.

  2. Job Scheduling: Bull supports delayed jobs out of the box, which means that jobs can be scheduled to run at a specific time in the future. This can be useful for scenarios where certain tasks need to be executed at specific times. Kue, however, does not have built-in support for job scheduling. In Kue, jobs are processed as soon as they are added to the queue.

  3. Concurrency Control: Bull provides built-in support for controlling the concurrency of job processing. This allows developers to limit the number of jobs that can be concurrently processed, which can be beneficial for managing resource usage. In Kue, there is no built-in mechanism for controlling concurrency. All jobs are processed concurrently without any limitations.

  4. Job Events: Bull offers a comprehensive events system for monitoring job progress and state changes. Developers can easily listen to various events such as 'completed', 'failed', 'stalled', etc., and perform actions based on those events. Kue also has events for tracking job progress, but it has a more limited set of events compared to Bull.

  5. Persistence: Bull provides out-of-the-box persistence to store job state in databases such as Redis or MongoDB. This allows jobs to survive server restarts and ensures reliability. Kue, on the other hand, does not natively support persistence. If job state persistence is required in Kue, developers need to implement it manually.

  6. Community and Documentation: Bull has a larger community and a more active development community compared to Kue. This means that there are more resources, documentation, and community support available for Bull. Kue, while still maintained, has a smaller community and fewer resources available.

In summary, Bull and Kue differ in their approach to job priority, scheduling, concurrency control, event handling, persistence, and community support. Bull offers more flexibility and features in these areas, whereas Kue is simpler and more lightweight but lacks some of the advanced capabilities provided by Bull.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Bull
Pros of Kue
  • 2
    Automatic recovery from process crashes
  • 1
    Ease of use
  • 1
    Based on Redis
  • 2
    Simple

Sign up to add or upvote prosMake informed product decisions

What is Bull?

The fastest, most reliable, Redis-based queue for Node. Carefully written for rock solid stability and atomicity.

What is Kue?

Kue is a feature rich priority job queue for node.js backed by redis. A key feature of Kue is its clean user-interface for viewing and managing queued, active, failed, and completed jobs.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Bull?
What companies use Kue?
See which teams inside your own company are using Bull or Kue.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Bull?
What tools integrate with Kue?
    No integrations found

    Blog Posts

    JavaScriptGitHubNode.js+29
    14
    13418
    What are some alternatives to Bull and Kue?
    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.
    Cron
    Background-only application which launches and runs other applications, or opens documents, at specified dates and times.
    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.
    See all alternatives