Delayed Job vs. Sidekiq: Which Is Better?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • delayed

    a multi-threaded, SQL-driven ActiveJob backend used at Betterment to process millions of background jobs per day

  • One big difference if you're changing forks is to take note of "at least once delivery": https://github.com/betterment/delayed#at-least-once-delivery

    If you're not aware of that, simply switching repos may cause some surprises.

  • Delayed::Job

    Database based asynchronous priority queue system -- Extracted from Shopify

  • Seems maintained to me:

    https://rubygems.org/gems/delayed_job

    https://github.com/collectiveidea/delayed_job

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • good_job

    Multithreaded, Postgres-based, Active Job backend for Ruby on Rails.

  • I've been using Sidekiq for years, rock solid and no complaints.

    However, this recent addition to the space seems to be gaining traction and appears to have an excellent feature set -

    https://github.com/bensheldon/good_job

  • inst-jobs

    Instructure-maintained fork of delayed_job

  • Another fork is [0] which adds debouncing, serialization, recurring jobs, and other useful things.

    (Disclaimer: I used to work at Instructure.)

    [0] https://github.com/instructure/inst-jobs

  • sidekiq-statistic

    See statistic about your workers

  • sidekiq-failures

    Keep track of Sidekiq failed jobs

  • sidekiq-unique-jobs

    Prevents duplicate Sidekiq jobs

  • https://github.com/mhenrixon/sidekiq-unique-jobs

    All of which also extend the web UI for Sidekiq which is incredibly useful for both debugging and having a handle on what's with your queues.

    Finally, if you're going to be using Sidekiq in any serious way I'd recommend Nate Berkopec's "Sidekiq in Practice" - https://nateberk.gumroad.com/l/sidekiqinpractice

    Beyond being an incredibly useful resource on its own - you get access to a very active private Slack that is filled with other very helpful developers who are using Sidekiq.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • delayed_job_web

    Resque like web interface for delayed job

  • I helped maintain delayed_job_web as a UI. It has fallen behind substantially now though. If folks are looking for a UI - it would be great to update it for modern versions of Rails. https://github.com/ejschmitt/delayed_job_web

  • heroku-buildpack-jemalloc

    Heroku buildpack that installs the Jemalloc memory allocator

  • I've recently discovered jemalloc, specifically when used with Heroku.

    "Using jemalloc instead of regular malloc helps too. The exact way to do this depends on the platform you use, but it is pretty simple on Heroku. Just set heroku-buildpack-jemalloc as the first buildpack (ahead of the heroku/ruby buildpack)."

    FYI, remember to set JEMALLOC_ENABLED=true in your env to actually turn it on.

    https://github.com/gaffneyc/heroku-buildpack-jemalloc

  • Que

    A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability.

  • https://github.com/que-rb/que

    This one seems to be the most performant. By a lot too, from my understanding (haven't ran any benchmark myself, but the readme shows some good postgres knowledge)

  • RocketJob

    Ruby's missing background and batch processing system

  • rocket job is pretty solid too, has a lot of the pro sidekiq features for free https://rocketjob.io/

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts