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.