DDD, Rails, and MongoDB
DDD isn't well known in Ruby developer circles. Don't discount it. DDD could be a boon to the Ruby community if it gained momentum. See how this sample Ruby on Rails/MongoDB app was built using DDD techniques.
Ruby has a rich OSS ecosystem, a vibrant agile development community, a strong commitment to design, and many talented modelers and designers. Yet using DDD to do strategic design and domain modeling is virtually unknown in the Ruby community.
This presentation is an attempt to bridge the gap via an exploration of what DDD might look like through Ruby/NoSQL-coloured glasses. The basis for this will be a port of the DDD sample app to Ruby on Rails using MongoDB for persistence. We'll cover interesting questions such as:
- How does the choice of Ruby affect the implementation of the DDD building block patterns?
- How well does an opinionated MVC framework like Rails support doing DDD?
- What are implications of choosing a document store like MongoDB for aggregate design and eventual consistency?
In the process we'll highlight significant lessons learned from porting the DDD sample app to Ruby/MongoDB, some significant concerns and aim to show potential ways forward.