~/talk

15 Years of Rails With Domain Driven Design - Lessons Learnt

Talkat RubyConf TH 2026 · 2026-01-31..02-01· [ruby-on-rails, software-architecture]
links:none on file
slides:none on file

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

  1. 0:00Introduction
  2. 4:26Rails architecture challenges
  3. 8:41DDD as Rails solution
  4. 11:11Modular Rails with DDD
  5. 12:37Read models for performance
  6. 16:52Domains and process managers
  7. 20:46Data flow in DDD Rails
  8. 23:14Adopting DDD in legacy Rails
  9. 27:29Removing callbacks
  10. 28:11Mutation testing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.