Practice · Interview · Card 4
"Sidekiq or Solid Queue?"
The right answer starts with "it depends," followed by a clear articulation of what it depends on. The dependency dimensions are what the interviewer scores.
The question
"For a new Rails 8 app, would you reach for Sidekiq or Solid Queue?"
Your job
Form an answer that names the trade-off dimensions, gives a concrete threshold, and states a default for a likely scenario.
Take a moment. What's the choice actually turning on? Throughput? Ops complexity? Existing infrastructure? Pick the dimension and give a concrete number where you'd switch.
The senior framing
"Solid Queue for moderate throughput, in the low thousands of jobs per minute, where the team wants one fewer infrastructure dependency — Postgres handles the queue. Sidekiq when throughput is very high, when you need complex workflows like batches and pipelines from Sidekiq Pro/Enterprise, or when you already run Redis for other reasons. For a greenfield app under a few thousand jobs/min, I'd default to Solid Queue."
Three components in that answer: dimension named (throughput, ops, existing infra), concrete threshold ("few thousand jobs/min"), default stated ("I'd start with Solid Queue").
Junior framings that don't land
- "Sidekiq. It's the industry standard." A default without a reason. Picking either without naming why is leaving signal on the table.
- "Solid Queue. Redis is dead." Hyperbolic and wrong. Redis is still widely used and Sidekiq is the right tool for many workloads. "X is dead" rarely lands as senior.
- "They're basically the same; ActiveJob lets you swap them." The API is swappable; the runtimes aren't equivalent. Different polling models (push vs pull), different ops profiles, different scaling characteristics.
- "Depends on the project." True but empty. Without naming the dimensions and a threshold, this is a non-answer.
What the rubric scores
- Dimensions named. Throughput, ops complexity, existing infrastructure — what does the choice depend on?
- Concrete threshold. A number where you'd switch from one to the other.
- Default with rationale. "I'd start with X because Y" is the close.
- Comfort with uncertainty. "If you tell me X and Y, I can refine the answer" — saying so confidently is senior.
Theory
For the trade-offs between the Solid family and the traditional stack, read Interview · The Modern Rails Stack.