Learn Domain-Driven Design

All of it free, and none of it behind a signup.

The path below is where we would start somebody who has just been told to go and look at Domain-Driven Design. It is what we would say to them in person.

Tell us what is missing from it, or which step you got stuck on.

Join our Discord →

How we modelled your path

In Domain-Driven Design we like to model our problems, so we did that for learning DDD the same way. Time runs left to right, and four colours are the whole notation.

  • Intentionwhat you set out to do, and why
  • Constraintswhat you need before that can happen
  • Outcomewhat is true once it has
  • Hotspotthe question nobody has answered yet

The path, as we would model it

Time runs left to right. Scroll the board, or tab into it and use the arrow keys.

Start with “What is DDD in 1 slide”The whole of step 1 takes about 20 minutes.

  1. Step 1about 20 minutes

    IntentionFind out whether this is even your problemBefore you learn anything, find out whether DDD is aimed at a problem you actually have.

    WatchWhat is DDD in 1 slideJaviera Laso

    WatchWhat is DDDEric Evans · DDD Europe 2019

    Done whenYou can say in one sentence what problem DDD claims to solve, and whether you have it.

  2. Step 2an evening

    IntentionLearn the four words that matterDomain, model, bounded context and ubiquitous language unlock every other resource; without them everything else reads as jargon.

    WatchIntroduction to Context MappingMichael Plöd · DDD Europe 2022

    ReadLearning Domain-Driven DesignVlad Khononov

    TryContext Mappingddd-crew

    TryWelcome to Domain-Driven Design (DDD)ddd-crew

    Done whenYou can draw your own system as two or three bounded contexts and name the language each one uses.

  3. And then

    Step 3

    Step 4

    HotspotThis is where the board runs out. What belongs here depends on what you do all day, and we would rather ask than guess. Tell us on Discord what your step 3 would be →

The whole library

Three ways in, depending on whether you want something to read, something to run in a session, or what people decided when they tried.