Pular para o conteúdo

Jean Boussier & IO-Bound Misconceptions

14 de julho de 2025 · 1 h 5 min

Notas do episódio

Jean Boussier, Senior Staff Engineer at Shopify and member of the Rails Core team, joins Robby to dig into the performance realities behind modern Rails apps.

They explore what it means to be IO-bound or CPU-bound, how Ruby’s Global VM Lock affects concurrency, and why "fast" is too vague to be useful. Jean explains why instrumentation is often the missing piece and shares thoughtful approaches to using background jobs with intention.

They also talk about gem dependencies. The gems in your `Gemfile` are not magic. If your app depends on them, you should understand them. You can read the code. You can patch it. You can make it your own.

This episode is a reminder that Rails is not a black box. It is a system you can study, shape, and improve. The more you learn how it works, the more confidently you can build with it.

🔗 References & Resources Mentioned

- 📖 Crafting Interpreters – A book Jean recommends for understanding how interpreters and Ruby internals work

- 🧵 GVL Tools (Shopify gem) – A tool for measuring thread contention in Ruby apps

- 📊 AppSignal – Monitoring platform that integrates with GVL instrumentation

- 🚢 ShipIt Engine – Shopify’s open-source deployment tool

- 🔒 Ruby’s Global VM Lock – Overview of what the GVL is and how it works

- 🦄 Unicorn – A classic preforking Ruby web server

- 🐆 Puma – A multi-threaded Ruby/Rack web server

- 🔀 Pitchfork – Shopify’s fork of Unicorn, optimized for their infrastructure

- ⚙️ ActiveRecord Async Queries – Jean’s Rails Core contribution for backgrounding slow queries

- 🔗 GraphQL – Used at Shopify to structure and query API data



Send us Fan Mail

On Rails is a podcast focused on real-world technical decision-making, exploring how teams are scaling, architecting, and solving complex challenges with Rails.

On Rails is brought to you by The Rails Foundation, and hosted by Robby Russell of Planet Argon, a consultancy that helps teams modernize their Ruby on Rails applications.

Todos os episódios de On Rails

Configurações

Exibição

Idioma

Define quais estações você vê primeiro na página inicial.

Histórico

As rádios e episódios ouvidos recentemente e suas últimas buscas ficam só neste navegador.

Avisos

Um aviso rápido quando um podcast que você segue tem um episódio novo. Desative podcasts individuais pelo sino na página deles.

Conta

Salve favoritos – no app e no site.

Atalhos de teclado

/
Abrir busca
Espaço
Reproduzir ou pausar
← →
No player: voltar 15 s, avançar 30 s (episódios) · na fileira: próximo bloco
↑ ↓
Na fileira: alvo dentro do bloco
Home / End
Na fileira: primeiro ou último bloco
Esc
Fechar janela ou menu
?
Esta visão geral
Tocando agora

Ir para a estação

A seguir

    Adicione episódios com “A seguir” – eles tocam depois do episódio atual.