From Post.create to PostPublished.new
summary
Maps eight Rails evolution phases and shows concrete migrations: swapping fat controllers for service objects, then repository with 40+ methods, then DDD with aggregates that publish events to streams. Describes building ruby_event_store and rails_event_store gems, using read models per UI box, process managers (sagas) for expirations, and distributed_receive for multiple DBs. Claims the gems plug into legacy apps, power new apps from start, and report successful adoption across several projects.
AI-written summary · about
chapters (21)
- 0:00Introduction and speaker background
- 2:48Ruby on Rails origins and DHH's influence
- 6:48Early Rails patterns: fat controllers
- 7:31Rails Way: fat models and concerns
- 8:13Service objects era in Rails
- 9:21Repository pattern and its challenges
- 11:05Domain-driven design and aggregates
- 13:59Limitations of domain objects in Rails
- 15:46Introduction to event sourcing
- 17:50CQRS: separating reads and writes
- 20:43Rich models and event-driven design
- 23:29Aggregate design with Rails Event Store
- 27:24Process managers for business logic
- 29:16Functional approach to event sourcing
- 30:18Rails Event Store goals and impact
- 32:07Q&A: read model consistency across databases
- 34:02Q&A: Rails Event Store framework agnosticism
- 35:27Q&A: read models without event store
- 36:54Q&A: DCI pattern discussion
- 37:56Q&A: DDD and over-engineering in Ruby
- 40:33Q&A: testing aggregates
related talks
30m15 Years of Rails With Domain Driven Design - Lessons Learnt
11mSpinning up micro-services using Ruby/Kafka
32mImplementing Rails 3.1...
01h 15mLightning Talks
32mComponent-based Architectures in Ruby and Rails
44mBuilding Distributed Applications
40mReinvesting in Ruby
37mHow I Architected My Big Rails App For Success
