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
These resources are typically aimed at beginners providing an overview of DDD as a whole and how the individual concepts fit together.
-
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
-
Domain-Driven Design, Martin Fowler
-
Domain-driven design needn't be hard. Here's how to start, Andrew Hamel-law
-
What is DDD?, Eric Evans
-
Tackling Complexity in the Heart of Software, Eric Evans
-
Getting to DDD: Pragmatic or Principled?, Julie Lerman
-
DDD from Product people's perspective, Zsofia Herendi
-
DDD-CQRS-ES Slack channel is a very active community to ask questions about anything relating to DDD, and get answers from practitioners in different contexts - Link to join: https://j.mp/ddd-es-cqrs
These resources teach and show how software development practitioners and domain experts can work together to model business domains.
-
Event Storming, Open Practice Library
-
Domain Storytelling, Open Practice Library
- 100,000 Orange Stickies Later, Alberto Brandolini
-
Visual Collaboration Tools, Kenny Baas-Schwegler & João Roasa
-
Awesome EventStorming, Mariusz Gil
These resources teach how to decompose a large domain into sub-domains and represent them as high-level architectural components called Bounded Contexts.
-
Bounded Context, Martin Fowler
-
Tackling business complexity with strategic domain-driven design, Leandro Lages
-
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
These resources show how to design software which is closely aligned to the business domain so that it is easier to understand and change.
- Architecture Patterns with Python, Harry Percival & Bob Gregory
-
Aggregates & Entities in Domain-Driven Design, Paul Rayner
-
Strengthening your domain: a primer, Jimmy Bogard
-
Domain Modeling Made Functional, Scott Wlaschin
-
Design in the small, Yves Reynhout
-
Refactoring for DDD Without Microservicing Your Monolith, Harry Brumleve
- DDD By Examples, Jakub Pilimon and Bartłomiej Słota
-
OOps I DDD it again and again, Ora Egozi-Barzilai
-
10 Lessons from a Long Running DDD Project, Jimmy Bogard
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