Skip to main content

DDD in Practice

DDD in Practice

Hands-on techniques and patterns to apply DDD in real systems

Overview​

This section covers practical, real-world techniques for applying DDD: collaborative workshops that discover domain structure, strategies for decomposing systems into services, integrating legacy systems safely, and aligning architecture with business needs.

Key Techniques​

Event Storming​

Collaborative workshops with domain experts and developers. Use events to discover domain structure, aggregates, and bounded contexts.

Strategic Decomposition​

Break monolithic systems into services aligned with bounded contexts and team ownership.

Legacy Integration​

Safely integrate existing systems using anti-corruption layers and context maps.

Microservices Alignment​

Map bounded contexts to microservices for team autonomy and scalability.

Model Evolution​

Strategies for refactoring and evolving domain models as understanding improves.

When to Use These Techniques​

  • Event Storming: Early in projects, when discovering domain with domain experts
  • Strategic Decomposition: Moving from monolith to services
  • Legacy Integration: Integrating old and new systems
  • Microservices Alignment: Planning service boundaries
  • Model Evolution: Ongoing development as domain understanding matures

Implementation Journey​

  1. Discover (Event Storming): Understand the domain through collaborative modeling
  2. Partition (Strategic Design): Define bounded contexts and team ownership
  3. Implement (Tactical Design): Build aggregates, entities, services within contexts
  4. Decompose (Services): Align services with contexts
  5. Integrate (ACLs, Events): Manage interaction between contexts
  6. Evolve (Refactoring): Improve models as learning continues

Section Structure​

Next Steps​

  • Learn Event Storming: Discover domain structure collaboratively
  • Study Microservices Alignment: Decompose and organize services
  • Explore Legacy Integration: Safely integrate existing systems
  • Apply Model Evolution: Keep improving your domain models

References​

  • Evans, E. (2003). Domain-Driven Design. Addison-Wesley.
  • Vaughn, V. (2016). Domain-Driven Design Distilled. Addison-Wesley.
  • Vernon, V. (2013). Implementing Domain-Driven Design. Addison-Wesley.