DDD in Ruby

Beautiful, highly adaptable and maintainable Ruby applications - only a dream?

At some point of your career you have probably heard about DDD (Domain Driven Design) and dismissed it quickly as overly complex and too enterprisy. After all, MVC and CRUD seem so much simpler and why would you go through the trouble of introducing new layers of complexity to your Ruby / Rails application? It just works and is really easy do maintain for many years to come, right?

Well… If you have ever worked on a successful Rails application, you probably experienced firsthand the problems that grow, when you apply MVC / CRUD to more complex requirements. You might start to introduce some extra layers, like services, interactors and such. While doing this, you have to invent new patterns, that are not quite popular in the Ruby community and there is little guidence, where this path will lead you.

We developers / builders / business-owners want similar things:

  • maintainable applications
  • correct software
  • good developer experience
  • this thing should run in production without major problems