Please log in to watch this conference skillscast.
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.
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? 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.
YOU MAY ALSO LIKE:
- Greg Young's CQRS, Domain Events, Event Sourcing and how to apply DDD (in London on 19th - 21st October 2016)
- Greg Young's Advanced CQRS & DDD Workshop (in London on 24th - 26th October 2016)
- µCon 2016: The Microservices Conference (in London on 7th - 8th November 2016)
- Alberto Brandolini's EventStorming Workshop (in London on 9th November 2016)
DDD with Ruby on Rails and MongoDB
Paul Rayner is one of the world’s leading BDD and DDD practitioners. He is a programmer, coach, mentor, trainer, and popular international conference speaker. With over 25 years of hands-on software development experience in a variety of industries, Paul is a seasoned agile design coach and leadership mentor, helping teams ignite their design skills via DDD, BDD and UXD.