NoSQL Zone is brought to you in partnership with:

Mitch Pronschinske is the Lead Research Analyst at DZone. Researching and compiling content for DZone's research guides is his primary job. He likes to make his own ringtones, watches cartoons/anime, enjoys card and board games, and plays the accordion. Mitch is a DZone Zone Leader and has posted 2578 posts at DZone. You can read more from them at their website. View Full User Profile

DDD, Rails, and MongoDB

  • submit to reddit

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.