15 Years of Rails With Domain Driven Design - Lessons Learnt
summary
Fast, practical account of converting a 10‑year Rails app into 50 modules (16 read models, 20 process managers, 14 domains) where most modules are under 500 LOC and a typical read model is ~80 LOC. Shows an explicit algorithm: create domains/read_models/process_managers directories, install rails_event_store, pick one slow view, design a read model schema, map events to columns, publish events alongside existing code and compare until identical. Covers agent work with Claude, where agents speed coding but hit business‑logic and performance limits, and recommends mutation testing with mutant and the Rails Event Store gem.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 4:26Rails architecture challenges
- 8:41DDD as Rails solution
- 11:11Modular Rails with DDD
- 12:37Read models for performance
- 16:52Domains and process managers
- 20:46Data flow in DDD Rails
- 23:14Adopting DDD in legacy Rails
- 27:29Removing callbacks
- 28:11Mutation testing
related talks
37mBuilt to last: A domain-driven approach to beautiful systems
39mLessons Learned from 10+ Years with Domain Driven Design
31mDomain Driven Design and Hexagonal Architecture with Rails
41mOff the Tracks - Challenging the Rails Mindset
30mThe Rails Story: Two Decades of Design and Decisions
34m"Taming your Rails monolith"
27mScaling Ruby Applications: Challenges, Solutions and Best Practices
31mTen Years of Rails Tutorials
