Why does rails have a tradition of queuing background jobs in a separate NoSQL store, when both the queueing controller and the job class tend to hammer the main database anyway?

This page summarizes the projects mentioned and recommended in the original post on /r/rails

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

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

  • If I were using Postgres, I'd consider using Good Job for the very reason you state. In fact, even using MS SQL, I still tend to use Delayed Job for that same simplicity, but it's very plain to see how much extra overhead this costs. To check for work, a query happens against the jobs table. To queue work, an insert happens. This creates a lot of db work, and unnecessary processing delay when in Redis, it would just be "I'll hang tight here until you tell me there's something to do."

  • Delayed::Job

    Database based asynchronous priority queue system -- Extracted from Shopify

  • Back in the day, before Sidekiq and such, we used Delayed Job https://github.com/collectiveidea/delayed_job

  • 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
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