free-ddd-learning-resources
free-ddd-learning-resources copied to clipboard
A collection of resources for learning DDD. All are free to access.
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 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
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
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