Free Domain-Driven Design Learning Resources
This repository contains a collection of blog posts, videos and other resources for learning Domain-Driven Design. All resources are free to access.
Please raise an issue if there is a resource you think should be added to this collection.
Table of Contents
- DDD Introductions & Fundamentals
- Collaborative Modelling
- Strategic Design
- Tactical DDD / Domain-as-code
- Case Studies
- DDD Blogs
DDD Introductions and Fundamentals
These resources are typically aimed at beginners providing an overview of DDD as a whole and how the individual concepts fit together.
EBooks
-
Domain-Driven Design Reference, Eric Evans
-
The Anatomy of Domain-Driven Design, Scott Millett and Samuel Knight
-
DDD: The First 15 Years, Various Authors
-
Domain-Driven Design Quickly, Abel Avram and Floyd Marinescu
Written Articles
-
Domain-Driven Design, Martin Fowler
-
Domain-driven design needn't be hard. Here's how to start, Andrew Hamel-law
Videos
-
What is DDD?, Eric Evans
-
Tackling Complexity in the Heart of Software, Eric Evans
-
Getting to DDD: Pragmatic or Principled?, Julie Lerman
Other Resources
-
DDD from Product people's perspective, Zsofia Herendi
-
DDD-CQRS-ES Discord Server is a very active community to ask questions about anything relating to DDD, and get answers from practitioners in different contexts
Collaborative Modelling
These resources teach and show how software development practitioners and domain experts can work together to model business domains.
Written Articles
-
Event Storming, Open Practice Library
-
Domain Storytelling, Open Practice Library
Videos
- 100,000 Orange Stickies Later, Alberto Brandolini
Other Resources
-
Visual Collaboration Tools, Kenny Baas-Schwegler & João Roasa
-
Awesome EventStorming, Mariusz Gil
Strategic Design
These resources teach how to decompose a large domain into sub-domains and represent them as high-level architectural components called Bounded Contexts.
Written Articles
-
Bounded Context, Martin Fowler
-
Tackling business complexity with strategic domain-driven design, Leandro Lages
Videos
-
Bounded Contexts, Cyrille Martraire
-
Practical DDD: Bounded Contexts + Events, Indu Alagarsamy
-
Emergent Boundaries, Matthias Verraes
-
Socio-technical architecture, Ora Egozi Barzilai and Evelyn van Kelle
-
All Our Aggregates Are Wrong, Mauro Servienti
Other Resources
-
Aligning organization and architecture with strategic DDD, Michael Plöd
-
Strategic Domain-Driven Design Kata: Delivericious, Nick Tune
Tactical DDD / Domain-as-code
These resources show how to design software which is closely aligned to the business domain so that it is easier to understand and change.
Ebooks
- Architecture Patterns with Python, Harry Percival & Bob Gregory
Written Articles
-
Aggregates & Entities in Domain-Driven Design, Paul Rayner
-
Strengthening your domain: a primer, Jimmy Bogard
Videos
-
Domain Modeling Made Functional, Scott Wlaschin
-
Design in the small, Yves Reynhout
-
Refactoring for DDD Without Microservicing Your Monolith, Harry Brumleve
Other Resources
- DDD By Examples, Jakub Pilimon and Bartłomiej Słota
Case Studies
-
OOps I DDD it again and again, Ora Egozi-Barzilai
-
10 Lessons from a Long Running DDD Project, Jimmy Bogard
DDD Blogs
Contributions and Inspiration
In addition to the content creators of each of the resources, thanks also goes to the following people:
We also thank to all existing and future contributors