Search a title or topic

Over 20 million podcasts, powered by 

Player FM logo
Artwork

Content provided by Rails Foundation, Robby Russell, Rails Foundation, and Robby Russell. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Rails Foundation, Robby Russell, Rails Foundation, and Robby Russell or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.
Player FM - Podcast App
Go offline with the Player FM app!

Ryan Stawarz & Austin Story: Inside Doximity’s 15-Year Rails Monolith

1:11:54
 
Share
 

Manage episode 499753481 series 3674688
Content provided by Rails Foundation, Robby Russell, Rails Foundation, and Robby Russell. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Rails Foundation, Robby Russell, Rails Foundation, and Robby Russell or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.

In this episode of On Rails, Robby is joined by Ryan Stawarz and Austin Story from Doximity, where Ruby on Rails has powered the core of their platform for over 15 years. The trio digs into how a single Rails monolith has evolved to support 100+ engineers and a mobile-first experience for millions of healthcare professionals. From front-end framework migrations to API architecture, they explore the real-world decisions required to keep a large Rails app resilient and fast-moving.

Ryan and Austin walk us through the team’s adoption of GraphQL, what led them to introduce GraphQL Federation, and how they balance speed with reliability when scaling APIs across domains. They talk about the tradeoffs of maintaining both GraphQL and REST, and how Doximity avoids N+1 query pitfalls using BatchLoader. The conversation also touches on the evolution of their front-end—from Backbone to Vue.js—and why Rails’ flexibility still gives them an edge.

Throughout the episode, they share pragmatic insights into debugging at scale, managing one-off data migrations, and determining when a service should live inside or outside the monolith. They also reflect on their use of tools like Packwerk, AnyCable, and Departure, and how a culture of trust, documentation, and lightweight planning helps Doximity move fast without breaking things.

🧰 Tools & Libraries Mentioned

- Ruby on Rails – The web framework powering Doximity’s monolith and many of their services.

- GraphQL-Ruby – Ruby gem for building GraphQL APIs in Rails.

- BatchLoader– Helps reduce N+1 queries in GraphQL.

- Vue.js – Their chosen frontend framework for building single-page applications.

- Packwerk – Helps enforce modular boundaries in their Rails monolith.

- Departure – Used for safe database migrations on large datasets.

- Thor – Used to run one-off CLI scripts with easier testability.

- rake-ui – Internal tool for triggering Rake tasks via a web UI.

- AnyCable – Go-based replacement for ActionCable to support realtime features at scale.

- Docker – Powers consistent local dev and containerized environments.

- Firebase – Used for push notifications in mobile apps.

Send us a text

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.

  continue reading

Chapters

1. Ryan Stawarz & Austin Story: Inside Doximity’s 15-Year Rails Monolith (00:00:00)

2. What keeps Ryan and Austin “On Rails” (00:01:20)

3. Why Doximity still relies on a Rails monolith at scale (00:06:48)

4. The early decision to adopt GraphQL in a Rails codebase (00:10:10)

5. How Docs Tasks help generate realistic data for debugging (00:14:25)

6. GraphQL Federation and simplifying deploy complexity (00:17:40)

7. Lessons from working with gRPC and REST alongside GraphQL (00:21:05)

8. Choosing Vue.js for frontend development in a large Rails app (00:25:20)

9. Using Packwerk to define boundaries in the Rails monolith (00:32:40)

10. How Doximity balances experimentation and architectural clarity (00:36:45)

11. Real-time Rails with ActionCable and AnyCable (00:41:15)

12. Internal tools that shape how engineering works at scale (00:44:10)

13. How the `departure` gem enables safer DB migrations (00:47:30)

14. Advice for smaller Rails teams dealing with scale (00:54:25)

15. Favorite engineering books and closing reflections (01:08:30)

4 episodes

Artwork
iconShare
 
Manage episode 499753481 series 3674688
Content provided by Rails Foundation, Robby Russell, Rails Foundation, and Robby Russell. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Rails Foundation, Robby Russell, Rails Foundation, and Robby Russell or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.

In this episode of On Rails, Robby is joined by Ryan Stawarz and Austin Story from Doximity, where Ruby on Rails has powered the core of their platform for over 15 years. The trio digs into how a single Rails monolith has evolved to support 100+ engineers and a mobile-first experience for millions of healthcare professionals. From front-end framework migrations to API architecture, they explore the real-world decisions required to keep a large Rails app resilient and fast-moving.

Ryan and Austin walk us through the team’s adoption of GraphQL, what led them to introduce GraphQL Federation, and how they balance speed with reliability when scaling APIs across domains. They talk about the tradeoffs of maintaining both GraphQL and REST, and how Doximity avoids N+1 query pitfalls using BatchLoader. The conversation also touches on the evolution of their front-end—from Backbone to Vue.js—and why Rails’ flexibility still gives them an edge.

Throughout the episode, they share pragmatic insights into debugging at scale, managing one-off data migrations, and determining when a service should live inside or outside the monolith. They also reflect on their use of tools like Packwerk, AnyCable, and Departure, and how a culture of trust, documentation, and lightweight planning helps Doximity move fast without breaking things.

🧰 Tools & Libraries Mentioned

- Ruby on Rails – The web framework powering Doximity’s monolith and many of their services.

- GraphQL-Ruby – Ruby gem for building GraphQL APIs in Rails.

- BatchLoader– Helps reduce N+1 queries in GraphQL.

- Vue.js – Their chosen frontend framework for building single-page applications.

- Packwerk – Helps enforce modular boundaries in their Rails monolith.

- Departure – Used for safe database migrations on large datasets.

- Thor – Used to run one-off CLI scripts with easier testability.

- rake-ui – Internal tool for triggering Rake tasks via a web UI.

- AnyCable – Go-based replacement for ActionCable to support realtime features at scale.

- Docker – Powers consistent local dev and containerized environments.

- Firebase – Used for push notifications in mobile apps.

Send us a text

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.

  continue reading

Chapters

1. Ryan Stawarz & Austin Story: Inside Doximity’s 15-Year Rails Monolith (00:00:00)

2. What keeps Ryan and Austin “On Rails” (00:01:20)

3. Why Doximity still relies on a Rails monolith at scale (00:06:48)

4. The early decision to adopt GraphQL in a Rails codebase (00:10:10)

5. How Docs Tasks help generate realistic data for debugging (00:14:25)

6. GraphQL Federation and simplifying deploy complexity (00:17:40)

7. Lessons from working with gRPC and REST alongside GraphQL (00:21:05)

8. Choosing Vue.js for frontend development in a large Rails app (00:25:20)

9. Using Packwerk to define boundaries in the Rails monolith (00:32:40)

10. How Doximity balances experimentation and architectural clarity (00:36:45)

11. Real-time Rails with ActionCable and AnyCable (00:41:15)

12. Internal tools that shape how engineering works at scale (00:44:10)

13. How the `departure` gem enables safer DB migrations (00:47:30)

14. Advice for smaller Rails teams dealing with scale (00:54:25)

15. Favorite engineering books and closing reflections (01:08:30)

4 episodes

All episodes

×
 
Loading …

Welcome to Player FM!

Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.

 

Copyright 2025 | Privacy Policy | Terms of Service | | Copyright
Listen to this show while you explore
Play