Deep Dive into Solid Queue: Advanced Features of a Rails Background Job Processor

2025-06-24
Deep Dive into Solid Queue: Advanced Features of a Rails Background Job Processor

Solid Queue is a robust background job processing system for Ruby on Rails, cleverly using the database—instead of external dependencies like Redis—to store and manage jobs. This article delves into Solid Queue's advanced features: job scheduling, recurring tasks, and concurrency controls. A dispatcher and scheduler handle scheduled and recurring jobs, respectively, utilizing `solid_queue_scheduled_executions` and `solid_queue_recurring_tasks` tables. Concurrency controls, implemented with Semaphore and BlockedExecution models, limit concurrent execution of specific job types, preventing resource contention. AppSignal integration is also discussed for monitoring Solid Queue's performance. Solid Queue's design prioritizes simplicity and reliability, making it a valuable addition to the Rails ecosystem.

Read more
Development

Rails 8's Solid Queue: A Deep Dive into the New Background Job Processor (Part 1)

2025-05-11
Rails 8's Solid Queue: A Deep Dive into the New Background Job Processor (Part 1)

Rails 8 introduces Solid Queue, a novel background job processing library that eliminates the need for external services like Redis. This article delves into Solid Queue's architecture, explaining the interplay between Jobs and Workers and how database tables (solid_queue_jobs, solid_queue_ready_executions, solid_queue_claimed_executions, solid_queue_processes) manage job queuing, execution, and monitoring. Solid Queue achieves high performance and reliability through clever database design and the use of FOR UPDATE SKIP LOCKED statements, employing a supervisor process to prevent job loss. The article also highlights SQLite limitations and AppSignal's performance monitoring capabilities, promising a deeper dive in part two.

Read more
Development Background Jobs

BiomeJS: A New Contender in JavaScript Code Formatting and Linting

2025-05-07
BiomeJS: A New Contender in JavaScript Code Formatting and Linting

BiomeJS is a rising star in the JavaScript ecosystem, challenging the dominance of Prettier and ESLint. This ambitious project combines code formatting and linting into a single, high-performance solution built with Rust. It boasts significantly improved speed, outperforming its predecessors by an order of magnitude. While offering similar functionality to Prettier and ESLint, BiomeJS currently lags in support for some frameworks and file types. Its ease of setup, intuitive error messages, and performance gains make it a compelling alternative, though it's still maturing compared to established tools.

Read more
Development