Systems | Development | Analytics | API | Testing

Rails async queries by example

While there were plenty of exciting changes that shipped with Rails 7, asynchronous querying has by far been one of the most talked about features. This is because asynchronous queries can drastically improve the performance of your application by executing long-running queries or complex queries in the background. To better understand why and how this works, let's start by digging into the core of what a Rails async query is.

What's new in Rails 8

Rails 8 is finally here, and it's shaking things up in a pretty exciting way. If you're already active in the Rails community, you might have heard the tagline: "No PaaS Required." This is an unusual (but not surprising) mission—the release is all about making it easier to deploy your Rails apps without needing a fully-featured platform-as-a-service (PaaS).

A practical GitHub Actions pipeline example with Rails

Continuous integration (CI) pipelines are an important part of building and deploying reliable software. Whether it's building a Docker image, running tests, or even just doing code linting, CI pipelines help you automate repetitive tasks and ship better code even faster. GitHub Actions lets you create pipelines to build containers, test source code, and publish software.

How Solid Queue works under the hood

Whether or not you're active in the Rails ecosystem, you might already have heard some of the buzz around Solid Queue, a new database-backed backend for ActiveJob. Solid Queue is a simple and performant option for background jobs that lets you queue large amounts of data without maintaining extra dependencies like Redis. We've already talked about how to deploy, run, and monitor Solid Queue, but we haven't yet explored how Solid Queue works.

Measuring the Impact of Feature Flags in Ruby on Rails with AppSignal

Feature flags are a powerful tool in software development, allowing developers to control the behavior of an application at runtime without deploying new code. They enable teams to test new features, perform A/B testing, and roll out changes gradually. In Ruby on Rails, feature flags can be managed using diverse tools, the most popular being the Flipper gem.

Building Ruby on Rails engines

Engines are one of the best ways to share functionality across Rails applications. Whether you're looking to extend your Rails application, modularize your project for better maintainability, or are just curious about the finer details, join us as we explore the intricacies of Rails engines. This article dives into everything you need to know about Rails engines, from their definition to their types, popular examples in the real world, and even building your own.

Squash Your Ruby and Rails Bugs Faster

A bug in software can be disruptive, elusive, maddening, and invasive. Indeed, a developer often needs the tenacity of Edison to find and fix an issue. But grit isn't the only asset a developer requires. One also needs information to debug code: What are the symptoms and effects of the issue? What is its frequency? Pervasiveness? Provenance? The evidence and artifacts of a bug — a core dump, stack trace, log, or test case — are invaluable.

An Introduction to HTTP Caching in Ruby On Rails

It's 2024, and the HyperText Transfer Protocol (HTTP) is 35 years old. The fact that the vast majority of web traffic still relies on this simple, stateless form of communication is a marvel in itself. A first set of content retrieval optimizations were added to the protocol when v1.0 was published in 1996. These include the infamous caching instructions (aka headers) that the client and server use to negotiate whether content needs refreshing.

Setting Up A RESTful API With Ruby on Rails

Ruby on Rails is an excellent choice for building a REST API, stemming from its design principles and robust feature set. It encourages a resource-oriented architecture, including built-in routing, migrations, and task tools. Rails also includes Active Record, an Object-Relational Mapping (ORM) layer, which simplifies database interactions.