Senior Track Roadmap

Architecture: DDD mastery

This course covers Domain-Driven Design applied to a Rails monolith, using an LMS codebase as the running example. It starts with ubiquitous language and the split between strategic and tactical design. It then covers bounded contexts and context maps, entities, value objects and aggregates, and the difference between domain services and application services. Later lessons show anti-corruption layers, module namespacing with Zeitwerk, a shared database and domain-based routes. The last lesson compares CRUD, service objects, modular monoliths and microservices to help decide when DDD fits.

What you'll learn

  • ✓Ubiquitous language, bounded contexts and context maps
  • ✓Entities, value objects and aggregates
  • ✓Domain services versus application services
  • ✓Anti-corruption layers for communication across contexts
  • ✓Namespaces, Zeitwerk and a shared database in a Rails monolith
  • ✓Choosing between CRUD, service objects, a DDD monolith, a modular monolith and microservices
Free preview · Lesson 1 7 min read

What is domain-driven design?

You've built Rails apps. You've scaled them. You've designed systems that handle millions of requests. Sooner or later, though, every growing codebase hits the same wall: the code no longer reflects the business.

Read the full lesson free →

Curriculum

7 lessons
Type to start searching...