"Taming your Rails monolith"
summary
Rails scales if you stop following the default Rails way and incrementally modularize: add service, value, query and form objects to make classes skinny and testable, build components as extract as gems or Rails engines inside the monolith, then optionally move them to services; migrate DB table names to include component namespaces to ease extraction and use an anti‑corruption layer/data‑mapper for boundaries. Practical steps: get solid test coverage, refactor high‑churn areas first, and mirror domain structure in folders — examples include GitHub and Mastodon at >300k LOC.
AI-written summary · about
chapters (51)
- 0:00Introduction
- 0:32Overview
- 0:59About me
- 1:31What Im presenting
- 1:47What is a monolith
- 2:11What is a massive code base
- 2:30When is a monolith a good thing
- 4:18The downsides of a monolith
- 6:10Congratulations
- 6:42Majestic
- 7:06Components
- 7:58Extract Microservices
- 8:30What can we do today
- 8:59Introducing components
- 9:29Practical steps
- 9:41Refactoring
- 11:45Skinny Everything
- 12:58View
- 14:00Simplify
- 14:33Services
- 15:00Value Objects
- 15:30Query Objects
- 15:53Form Objects
- 16:13Adapters
- 16:51Controllers
- 17:18Organization
- 17:47Stronger Pattern
- 18:06Stop adding new components
- 18:44Separating backend from frontend
- 19:30Identifying components
- 20:05Structure for the future
- 20:35Identifying seams
- 21:29Feedback
- 22:03Extracting
- 22:18Logical progression
- 23:02Next steps
- 23:54Summary
- 24:17Resources
- 24:36Componentbased Rails Application
- 25:05Examples
- 25:49YouTube
- 26:20Thank you
- 26:37Questions
- 27:49Micro Services
- 28:46Interactors
- 30:01Domain logic
- 30:21Policies
- 30:51Naming Scheme
- 31:17Classes
- 31:53Other approaches
- 33:10Domain events
related talks
33mRefactoring Towards Component-based Rails Architectures
39mTaming Monoliths Without Microservices
21mTaming Monoliths Without Microservices
28mBringing Your Rails Monolith Along As The Business Grows
35mModularizing Rails Monoliths One Bite at a Time
40mMonoliths Between Microservices
41mDeconstructing the Monolith
17mDesigning software that maximizes developer productivity
