Taming Monoliths Without Microservices
summary
A Rails shop of ~80–100 engineers running a 1.5M‑line monolith that moves ~$1B/month refines the app by drawing conceptual boundaries (an in‑process translation layer) and replacing cross‑cutting ActiveRecord plumbing with plain old Ruby objects so HR and payroll treat employees differently; tactics are avoid callbacks and eliminate circular dependencies via service nodes; work is incremental—hundreds of PRs over years—but the refactor preserves correctness over perf and makes later extraction into services a one‑week conversion.
AI-written summary · about
chapters (13)
- 0:00TAMING MONOLITHS WITHOUT MICROSERVICES
- 3:17We're here to talk about Rails projects that push the limits
- 4:16Correctness Performance
- 4:54What goes wrong, when things get too big
- 5:39The Swamp
- 7:20Let's Extract a Service!
- 13:59Conceptual Compression
- 14:33Conceptual Expansion
- 14:43Part III: Tactics
- 14:59Mind and Avoid Circular Dependencies
- 15:46Use Value Objects to Traverse Edges
- 17:04Avoid Callbacks
- 19:54Recommendation #4 Move slowly!
related talks
39mTaming Monoliths Without Microservices
26mMonolith-ifying perfectly good microservices
34m"Taming your Rails monolith"
30mMonolith-ifying perfectly good microservices
28mBringing Your Rails Monolith Along As The Business Grows
43mThe history of a Rails monolith
40mMonoliths Between Microservices
17mDesigning software that maximizes developer productivity
