Domain Driven Design Modeling Process - From Problem to Solution Space

A workshop at DDD Conf in November 2020, given by Kacper Gunia.

Miro board: https://miro.com/app/board/o9J_kh-4BDg=/ pw exploreddd (I was in Group 1)

Day 1

Day 1: event storming (Align and Discover in the domain driven design modeling process diagram)

four L retrospective

Domain Driven Design starter modelling process

the alternative to good design is bad design, not no design at all
- Douglas Martin

(you can't be neutral on a moving train)

local vs global complexity

arbitrary boundaries result in coupling

Accelerate: Building and Scaling High Performing Technology Organizations by Nicole Forsgren and Jez Humble and Gene Kim: loosely coupled architecture & teams is a predictor of continuous delivery performance

minimize accidental complexity

three pillars of domain driven design

Test domain: Foodanic

Day 2

Day 2: ubiquitous language and
bounded context (Decompose and Connect in the domain driven design modeling process diagram)

all models are wrong but some are useful

domain is your problem space

bounded context is your solution space / bounded contexts are your subsystems

message flow diagramming

Day 3

Day 3: context classification and team topology (Strategize, Organize and Define in the domain driven design modeling process)

if your data must be up to date, you cannot use eventual consistency (though you then become reliant on the other system being available)

composite ui: maybe a repudiation of our design with Order?

should Order be the source of truth? I say no, but also what if it has stale data I guess? centralize state. I guess we might have a combo of

Eric Evans Domain-Driven Design: Tackling Complexity in the Heart of Software

Day 4

Day 4: domain driven design patterns, design level event storming, scenario mapping, aggregate design canvas

Design Level EventStorming and The Domain: other DDD examples

invariant vs policy

one command can produce multiple events

ubiquitous language facilitates event storming