Domain-Driven Design Workshop Training Course

Domain-Driven Design (DDD) is an approach to software development for complex needs by connecting the implementation to an evolving model. DDD helps improve codebase quality by positively affecting all aspects of the software development lifecycle - gathering and understanding requirements, analysis, design, architecture, coding, testing, deployment, and maintenance. Complex and long-running projects benefit from DDD by keeping the fast development pace when other projects typically slow down. Shorter projects and individual contributors enjoy using DDD to achieve cleaner and intuitive code and improved quality of the delivered software. DDD also helps align with modern software architecture styles such as Microservices, Event Sourcing, CQRS, and so on.

Training Curriculum


Putting the Model to Work
  • Bounded Context
  • Ubiquitous Language
  • Continuous Integration
  • Model-Driven Design
  • Hands-on Modelers
  • Refactoring Toward Deeper Insight
Building Blocks of a Model-Driven Design
  • Layered Architecture
  • Entities
  • Value Objects
  • Domain Events
  • Services
  • Modules
  • Aggregates
  • Repositories
  • Factories
Supple Design
  • Intention-Revealing Interfaces
  • Side-Effect-Free Functions
  • Assertions
  • Standalone Classes
  • Closure of Operations
  • Declarative Design
  • Drawing on Established Formalisms
  • Conceptual Contours
Context Mapping for Strategic Design
  • Context Map
  • Partnership
  • Shared Kernel
  • Customer/Supplier Development
  • Conformist
  • Anticorruption Layer
  • Open-host Service
  • Published Language
  • Separate Ways
  • Big Ball of Mud
Distillation for Strategic Design
  • Core Domain
  • Generic Subdomains
  • Domain Vision Statement
  • Highlighted Core
  • Cohesive Mechanisms
  • Segregated Core
  • Abstract Core
Large-scale Structure for Strategic Design
  • Evolving Order
  • System Metaphor
  • Responsibility Layers
  • Knowledge Level
  • Pluggable Component Framework
Blending DDD into Other Architectures
  • DDD and Microservices
  • DDD and CQRS
  • DDD and Event Sourcing
Collaboration via DDD
  • Model Exploration Whirlpool
  • Event Storming
  • Whiteboard Modeling

Ready to take your team to the next level?
Let's Talk
All Training Courses

Training Courses for the Smart Ones

    Have you ever been on training where an instructor cannot answer your questions?
    Have you ever left the training with a feeling that you didn't learn anything new?
    Me too.

    I don't teach things that I have not or cannot do myself, so I am not a typical trainer. I teach things that I do daily. People who have worked with me consider me as an exceptionally knowledgeable professional. I can help you learn intricate skills that will allow you to become a top-notch professional. I will answer every question you can have, ensuring that you leave my training on another level than what you had before you came to me.

    - Tengiz Tutisani