All Articles

Rails Solid Queue for Background Jobs

Rails 8.0 introduces Solid Queue as the default queueing system for processing background jobs. It is designed by the Basecamp/HEY team with the Rails philosophy in mind: convention over configuration, fewer dependencies, and built-in defaults.

Before Solid Queue, you would use external libraries like Sidekiq (Redis), Resque, or Delayed Job to manage background jobs. These tools are good, but they also introduce operational overhead, like:

  • Redis integration
  • Managing the deployment and monitoring of background services
  • Custom logic for multitenancy apps

Benefits of Solid Queue

  • Solid Queue has zero external dependencies, like Sidekiq, which requires Redis. All background jobs are stored and managed in your database.
  • It is fully integrated with Rails and Active Job, so you don’t require additional configurations.
  • No customisation is required for Multitenancy. It supports job execution via Rails built-in multitenancy features, such as Current.
  • It can handle thousands of jobs per minute, so ideally for 80% of the Rails apps.

How to Use Solid Queue

Step 1: Install the gem

gem "solid_queue"

Step 2: Run migrations

bin/rails solid_queue:install:migrations
bin/rails db:migrate

Step 3: Configure Active Job

config.active_job.queue_adapter = :solid_queue

Step 4: Start a worker

bin/rails solid_queue:work

You can also use Foreman to start the worker.

Step 5: Enqueue jobs as usual

MyJob.perform_later(args)

When Not to Use It

Stick with Sidekiq or Resque if:

  • You need ultra-high concurrency or low-latency job processing
  • You require advanced features such as batching, rate limiting, or job throttling
  • You already have Redis-based infrastructure and tooling

Conclusion

Solid Queue is ideal for smaller teams or startups seeking to simplify their stack. If you’re starting a new Rails 8.0+ app, Solid Queue should be your default.