30% OFF - Use code HANDSON30 for 30% off any course or Dometrain Pro! Browse courses →
  • Courses
  • Learning Paths
  • Blogs
  • Authors
  • Leaderboard
  • Dometrain Pro
  • Shopping Basket

    Your basket is empty

  • Business Portal
  • Deep Dive: Domain-Driven Design

    Explore advanced Domain-Driven Design concepts like event storming, context mapping, and aggregate design. This course helps you master complex systems architecture for scalable applications.

    About This Course

    Domain-driven design (or DDD for short) is one of the most popular software design approaches and for excellent reason. It allows us to build highly maintainable systems using domain-specific expertise and base our implementation on well-developed models using ubiquitous language. In this course, Amichai Mantinband will expand on his existing Getting Started course knowledge and dive deeper into advanced DDD concepts such as event storming, sub-domains, bounded contexts, context mapping, aggregate design and more. Join Amichai in this 6-hour course and get ahead of the curve on your DDD journey.

    Course Curriculum

    5h 41m 11 sections
    Welcome
    02:40 Free preview
    What will you learn in this course?
    02:07 Free preview
    Who is the course for and prerequisites
    02:31 Free preview
    Designing Systems Following Domain-Driven Design
    08:08
    Key Strategic and Tactical Practices
    03:44
    Domain Discovery
    02:32
    Domain Discovery Techniques
    08:11
    Event Storming Sneak Peek
    02:27
    Documenting Ubiquitous Language
    04:16
    Documenting Invariants
    03:25
    Section Recap
    01:28
    What is Event Storming?
    03:07
    Event Storming Legend
    07:00
    Types of Event Storming
    02:53
    Big Picture Event Storming
    05:29
    Gym Session Scheduling System Domain Overview
    05:22
    Big Picture Event Storming In Action - Setup
    05:18
    Round 1 - Chaotic Exploration
    13:24
    Round 2 - Enforce the Timeline
    15:59
    Round 3 - People & Systems
    05:10
    Round 4 - Walkthrough & Reverse Narrative
    05:22
    Round 5 - Arrow Voting
    01:18
    Big Picture Event Storming Goals
    01:51
    Section Recap
    01:47
    What is Process Modeling Event Storming?
    04:28
    Process Modeling - The Rules of the Game
    01:29
    Process Modeling in Action - Setup
    02:09
    Round 1 - Framing the Problem
    02:00
    Round 2 - Rush to the Goal
    13:24
    Round 3 - Fill in the Blanks
    08:22
    Process Modeling Event Storming Goals
    01:13
    Section Recap
    01:00
    Refresher - What are Domains & Sub-Domains
    04:56
    Identifying Sub-Domains
    08:34
    Classifying Sub-Domains
    03:09
    Section Recap
    01:29
    Refresher - What are Bounded Contexts
    06:59
    Reviewing Our Ubiquitous Language
    04:28
    Reviewing Our Invariants
    02:38
    Reviewing Our Sub-Domains
    03:46
    How Bounded Contexts Affect Domain Models
    01:56
    Defining Bounded Contexts
    03:45
    Defining Our Bounded Contexts
    06:34
    Section Recap
    00:34
    Refresher - What is Context Mapping
    02:53
    Team Relationships
    03:57
    Context Map Patterns
    10:44
    Context Mapping In Action - Setup & Context
    03:36
    Creating an Admin Profile
    08:58
    Creating a Subscription
    02:21
    Creating a Gym
    02:35
    Creating a Room
    02:32
    Creating a Session
    03:09
    Creating a Participant Profile
    01:21
    Reserving a Spot in a Session
    01:04
    Context Mapping In Action - Conclusion
    01:11
    Strategic Goals Alignment
    02:36
    Section Recap
    00:37
    Refresher - What is the Tactical Phase
    01:35
    Refresher - Tactical Patterns
    07:20
    Tactical Phase Objectives
    03:47
    Section Recap
    00:32
    Enforce Invariants
    00:46
    Reference Aggregates By Id
    00:19
    Update Aggregate via Aggregate Root
    00:14
    Prefer Smaller Aggregates
    01:44
    One Aggregate Per Transaction
    01:59
    Use Eventual Consistency Outside the Boundary
    02:56
    Maintain Aggregate Scope
    00:30
    Aggregate Root Identity Uniqueness
    00:18
    Private > Public
    00:36
    Assess and Refactor
    00:20
    Aggregate Design Steps
    06:06
    Aggregate Design In Action - Step 1
    02:06
    Aggregate Design In Action - Step 2
    05:56
    Aggregate Design In Action - Step 3
    02:04
    Aggregate Design In Action - Step 4 Setup
    02:02
    Merging Aggregates in the User Management Context
    05:43
    Merging Aggregates in the Gym Management Context
    10:41
    Merging Aggregates in the Session Management Context - The Chain Effect of Merging Aggregates
    04:05
    Merging Aggregates in the Session Management Context - Identifying Missing Domain Objects
    06:01
    Merging Aggregates in the Session Management Context Continued
    02:23
    Merging Aggregates in the Session Management Context - Propagating Data Across Bounded Contexts
    03:49
    Merging Aggregates Across Bounded Contexts
    04:50
    Merging Aggregates in the Session Management Context - Continued
    01:57
    Aggregate Design Draft Reflection
    04:29
    Merging Aggregates Based On Eventual Consistency Constraints
    01:12
    Evolving Aggregate Design With Time or Refactoring Existing Aggregate Designs
    03:19
    Converting Aggregate Design To Code
    02:32
    Section Recap
    01:10
    Course Conclusion
    01:31

    Meet Your Instructor

    Amichai Mantinband

    Amichai Mantinband

    Amichai Mantinband is a Software Engineer at Microsoft and a .NET content creator.
    He works on large-scale, distributed systems within Microsoft Office, serving over 100 million daily users. He is a speaker at official .NET conferences, and within Microsoft, he authors and teaches software architecture courses.
    Amichai is the author of NuGet packages ErrorOr & Throw and has a .NET programming YouTube channel covering advanced topics such as design patterns, architecture, and best practices.

    View all courses by Amichai Mantinband

    What's New

    Getting Started: Model Context Protocol (MCP)
    course

    Getting Started: Model Context Protocol (MCP)

    Learn how to get started with the Model Context Protocol (MCP) and integrate it into your applications.

    Learn more about Getting Started: Model Context Protocol (MCP)
    Hands-On: Learn TypeScript
    course

    Hands-On: Learn TypeScript

    Learn TypeScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn TypeScript
    Hands-On: Learn JavaScript
    course

    Hands-On: Learn JavaScript

    Learn JavaScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn JavaScript
    Hands-On: Data Structures & Algorithms in C#
    course

    Hands-On: Data Structures & Algorithms in C#

    Master data structures and algorithms through hands-on coding exercises in C#. Free to enroll for 7 days!

    Learn more about Hands-On: Data Structures & Algorithms in C#
    Blogsmith.ai
    feature

    Blogsmith.ai

    Turn your videos into blogs and newsletters with AI. Check out our new product at blogsmith.ai.

    Learn more about Blogsmith.ai
    Leaderboard
    feature

    Leaderboard

    See how you stack up against other learners. Track your progress, climb the ranks, and compete with the Dometrain community.

    Learn more about Leaderboard
    Hands-On: Learn PostgreSQL
    course

    Hands-On: Learn PostgreSQL

    Learn PostgreSQL through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn PostgreSQL
    Free Hands-On: C# for Beginners
    course

    Free Hands-On: C# for Beginners

    Learn C# through hands-on coding exercises. Practice what you learn with interactive challenges designed for everyone, from beginners to experts.

    Learn more about Free Hands-On: C# for Beginners
    Getting Started: AI for .NET Developers
    course

    Getting Started: AI for .NET Developers

    Get started with integrating AI into your .NET applications effectively using the latest LLM best practices.

    Learn more about Getting Started: AI for .NET Developers
    Getting Started: Building .NET Applications on AWS
    course

    Getting Started: Building .NET Applications on AWS

    Learn how to build and deploy .NET applications on AWS using CDK, Lambda, DynamoDB, S3, and more.

    Learn more about Getting Started: Building .NET Applications on AWS
    What's new in C# 14
    blog

    What's new in C# 14

    This guide covers every new C# 14 feature, explains its benefits, and provides practical code examples to help you navigate how you can use them.

    Learn more about What's new in C# 14
    Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    course

    Let's Build It: AI Chatbot with RAG in .NET Using Your Data

    Build a Retrieval-Augmented Generation (RAG) chatbot that can answer questions using your data.

    Learn more about Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    From Zero to Hero: SignalR in .NET
    course

    From Zero to Hero: SignalR in .NET

    Enable enterprise-grade real-time communication for your web apps with SignalR.

    Learn more about From Zero to Hero: SignalR in .NET
    Deep Dive: Solution Architecture
    course

    Deep Dive: Solution Architecture

    Master solution architecture and turn business needs into scalable, maintainable systems.

    Learn more about Deep Dive: Solution Architecture
    Migrating: ASP.NET Web APIs to ASP.NET Core
    course

    Migrating: ASP.NET Web APIs to ASP.NET Core

    A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

    Learn more about Migrating: ASP.NET Web APIs to ASP.NET Core
    Getting Started: Caching in .NET
    course

    Getting Started: Caching in .NET

    Let's make the hardest thing in programming easy for .NET software engineers.

    Learn more about Getting Started: Caching in .NET
    From Zero to Hero: Testing with xUnit in C#
    course

    From Zero to Hero: Testing with xUnit in C#

    Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

    Learn more about From Zero to Hero: Testing with xUnit in C#
    Create a ChatGPT Console AI Chatbot in C#
    blog

    Create a ChatGPT Console AI Chatbot in C#

    This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

    Learn more about Create a ChatGPT Console AI Chatbot in C#