Deep Dive: Domain-Driven Design

5h 42m 25s
English
Paid
May 15, 2024

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.

Watch Online Deep Dive: Domain-Driven Design

Join premium to watch
Go to premium
# Title Duration
1 Welcome 02:41
2 What will you learn in this course? 02:08
3 Who is the course for and prerequisites 02:32
4 Designing Systems Following Domain-Driven Design 08:09
5 Key Strategic and Tactical Practices 03:45
6 Domain Discovery 02:33
7 Domain Discovery Techniques 08:12
8 Event Storming Sneak Peek 02:28
9 Documenting Ubiquitous Language 04:17
10 Documenting Invariants 03:26
11 Section Recap 01:29
12 What is Event Storming? 03:08
13 Event Storming Legend 07:01
14 Types of Event Storming 02:54
15 Big Picture Event Storming 05:30
16 Gym Session Scheduling System Domain Overview 05:24
17 Big Picture Event Storming In Action - Setup 05:19
18 Round 1 - Chaotic Exploration 13:25
19 Round 2 - Enforce the Timeline 16:00
20 Round 3 - People & Systems 05:11
21 Round 4 - Walkthrough & Reverse Narrative 05:23
22 Round 5 - Arrow Voting 01:19
23 Big Picture Event Storming Goals 01:52
24 Section Recap 01:48
25 What is Process Modeling Event Storming? 04:29
26 Process Modeling - The Rules of the Game 01:30
27 Process Modeling in Action - Setup 02:11
28 Round 1 - Framing the Problem 02:01
29 Round 2 - Rush to the Goal 13:25
30 Round 3 - Fill in the Blanks 08:23
31 Process Modeling Event Storming Goals 01:14
32 Section Recap 01:01
33 Refresher - What are Domains & Sub-Domains 04:57
34 Identifying Sub-Domains 08:35
35 Classifying Sub-Domains 03:10
36 Section Recap 01:30
37 Refresher - What are Bounded Contexts 07:00
38 Reviewing Our Ubiquitous Language 04:29
39 Reviewing Our Invariants 02:39
40 Reviewing Our Sub-Domains 03:47
41 How Bounded Contexts Affect Domain Models 01:57
42 Defining Bounded Contexts 03:46
43 Defining Our Bounded Contexts 06:35
44 Section Recap 00:35
45 Refresher - What is Context Mapping 02:54
46 Team Relationships 03:58
47 Context Map Patterns 10:46
48 Context Mapping In Action - Setup & Context 03:37
49 Creating an Admin Profile 08:59
50 Creating a Subscription 02:22
51 Creating a Gym 02:36
52 Creating a Room 02:33
53 Creating a Session 03:10
54 Creating a Participant Profile 01:22
55 Reserving a Spot in a Session 01:05
56 Context Mapping In Action - Conclusion 01:12
57 Strategic Goals Alignment 02:37
58 Section Recap 00:38
59 Refresher - What is the Tactical Phase 01:36
60 Refresher - Tactical Patterns 07:21
61 Tactical Phase Objectives 03:48
62 Section Recap 00:33
63 Enforce Invariants 00:48
64 Reference Aggregates By Id 00:20
65 Update Aggregate via Aggregate Root 00:16
66 Prefer Smaller Aggregates 01:45
67 One Aggregate Per Transaction 02:00
68 Use Eventual Consistency Outside the Boundary 02:57
69 Maintain Aggregate Scope 00:31
70 Aggregate Root Identity Uniqueness 00:19
71 Private > Public 00:37
72 Assess and Refactor 00:22
73 Aggregate Design Steps 06:07
74 Aggregate Design In Action - Step 1 02:07
75 Aggregate Design In Action - Step 2 05:57
76 Aggregate Design In Action - Step 3 02:05
77 Aggregate Design In Action - Step 4 Setup 02:03
78 Merging Aggregates in the User Management Context 05:44
79 Merging Aggregates in the Gym Management Context 10:42
80 Merging Aggregates in the Session Management Context - The Chain Effect of Merging Aggregates 04:06
81 Merging Aggregates in the Session Management Context - Identifying Missing Domain Objects 06:02
82 Merging Aggregates in the Session Management Context Continued 02:24
83 Merging Aggregates in the Session Management Context - Propagating Data Across Bounded Contexts 03:50
84 Merging Aggregates Across Bounded Contexts 04:51
85 Merging Aggregates in the Session Management Context - Continued 01:58
86 Aggregate Design Draft Reflection 04:30
87 Merging Aggregates Based On Eventual Consistency Constraints 01:13
88 Evolving Aggregate Design With Time or Refactoring Existing Aggregate Designs 03:20
89 Converting Aggregate Design To Code 02:33
90 Section Recap 01:11
91 Course Conclusion 01:32

Similar courses to Deep Dive: Domain-Driven Design

Advanced Radix UI

Advanced Radix UI

Duration 2 hours 13 minutes 5 seconds
Build RESTFUL APIs using Kotlin and Spring Boot

Build RESTFUL APIs using Kotlin and Spring Boot

Duration 8 hours 23 minutes 18 seconds
System Design Course

System Design Course

Duration 92 hours 26 minutes 21 seconds
Python for Financial Analysis and Algorithmic Trading

Python for Financial Analysis and Algorithmic Trading

Duration 16 hours 54 minutes 20 seconds
Understanding Cognitive Biases

Understanding Cognitive Biases

Duration 10 hours 51 minutes 35 seconds
Master Gorgeous UI Design

Master Gorgeous UI Design

Duration 5 hours 25 minutes 9 seconds
The Ultimate Data Structures & Algorithms: Part 2

The Ultimate Data Structures & Algorithms: Part 2

Duration 5 hours 56 minutes 46 seconds
Sidekiq in Practice

Sidekiq in Practice

Duration 1 hour 4 minutes 45 seconds