Deploy apps to servers that you own and control.
Application monitoring that helps developers get it done.
Rails 8 includes a number of built-in tools that make applications production-ready by default. In this video, I want to introduce a few key ones, starting with the Solid gems suite.
If we look at the Gemfile, we can see three essential Solid gems:
For this video, we’ll focus on Solid Queue and how it is set up to handle background job processing efficiently.
Looking at the database schema, we notice that Solid Queue creates multiple tables.
The reason for so many tables is that Rails applications process thousands—or even millions—of jobs daily.
For example, 37signals processes over 20 million jobs per day in a single Rails application, making efficiency crucial.
Let’s now check out the database.yml file to see how the queue system is structured.
In the production environment, we see that Rails is using four separate SQLite databases, each dedicated to a specific purpose:
Why is this separation important?
For example, Rails can be writing to the primary database at the same time that Solid Queue processes jobs in a separate database. This setup helps avoid concurrency contention and keeps applications running smoothly.
Next, let’s explore how Solid Queue is configured in our Rails 8 app.
The solid_queue.yml file sets up dispatchers and workers:
The recurring.yml file allows us to schedule recurring background jobs. For example, we could set up a job to clean up soft-deleted records at regular intervals. We’ll use recurring jobs later when setting up our automated backup system after the app is built.
In the next videos, we’ll explore other Solid gems before diving into building our Rails 8 application! 🚀