└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Free Domain-Driven Design Learning Resources 2 | 3 | This repository contains a collection of blog posts, videos and other resources for learning Domain-Driven Design. All resources are free to access. 4 | 5 | > Please raise an issue if there is a resource you think should be added to this collection. 6 | 7 | *Table of Contents* 8 | 1. [DDD Introductions & Fundamentals](#ddd-introductions-and-fundamentals) 9 | 2. [Collaborative Modelling](#collaborative-modelling) 10 | 3. [Strategic Design](#strategic-design) 11 | 4. [Tactical DDD / Domain-as-code](#tactical-ddd--domain-as-code) 12 | 5. [Case Studies](#case-studies) 13 | 6. [DDD Blogs](#ddd-blogs) 14 | 15 | ## DDD Introductions and Fundamentals 16 | 17 | These resources are typically aimed at beginners providing an overview of DDD as a whole and how the individual concepts fit together. 18 | 19 | ### EBooks 20 | 21 | - [Domain-Driven Design Reference](https://domainlanguage.com/wp-content/uploads/2016/05/DDD_Reference_2015-03.pdf), Eric Evans 22 | 23 | - [The Anatomy of Domain-Driven Design](https://leanpub.com/theanatomyofdomain-drivendesign), Scott Millett and Samuel Knight 24 | 25 | - [DDD: The First 15 Years](https://leanpub.com/ddd_first_15_years), Various Authors 26 | 27 | - [Domain-Driven Design Quickly](https://www.infoq.com/minibooks/domain-driven-design-quickly/), Abel Avram and Floyd Marinescu 28 | 29 | 30 | ### Written Articles 31 | 32 | - [Domain-Driven Design](https://martinfowler.com/bliki/DomainDrivenDesign.html), Martin Fowler 33 | 34 | - [Domain-driven design needn't be hard. Here's how to start](https://www.thoughtworks.com/insights/blog/domain-driven-design-neednt-be-hard-heres-how-start), Andrew Hamel-law 35 | 36 | - [DDD Starter Modelling Process](https://github.com/ddd-crew/ddd-starter-modelling-process) 37 | 38 | 39 | ### Videos 40 | 41 | - [What is DDD?](https://www.youtube.com/watch?v=pMuiVlnGqjk), Eric Evans 42 | 43 | - [Tackling Complexity in the Heart of Software](https://www.youtube.com/watch?v=dnUFEg68ESM), Eric Evans 44 | 45 | - [Getting to DDD: Pragmatic or Principled?](https://www.youtube.com/watch?v=3AAzySH3A88), Julie Lerman 46 | 47 | 48 | ### Other Resources 49 | 50 | - [DDD from Product people's perspective](https://drive.google.com/file/d/1cIMdatvI2o3OjGnqnjQX6p6VQWfQAL5Z/view), Zsofia Herendi 51 | 52 | - [Virtual DDD Meetup Group](https://virtualddd.com/) 53 | 54 | - [DDD-CQRS-ES Discord Server](https://github.com/ddd-cqrs-es/community) is a very active community to ask questions about anything relating to DDD, and get answers from practitioners in different contexts 55 | 56 | 57 | ## Collaborative Modelling 58 | 59 | These resources teach and show how software development practitioners and domain experts can work together to model business domains. 60 | 61 | ### Written Articles 62 | 63 | - [Event Storming](https://openpracticelibrary.com/practice/event-storming/), Open Practice Library 64 | 65 | - [Domain Storytelling](https://openpracticelibrary.com/practice/domain-storytelling/), Open Practice Library 66 | 67 | ### Videos 68 | 69 | - [100,000 Orange Stickies Later](https://www.youtube.com/watch?v=fGm62ra_mQ8&feature=youtu.be), Alberto Brandolini 70 | 71 | ### Other Resources 72 | 73 | - [Visual Collaboration Tools](https://leanpub.com/visualcollaborationtools), Kenny Baas-Schwegler & João Roasa 74 | 75 | - [Awesome EventStorming](https://github.com/mariuszgil/awesome-eventstorming), Mariusz Gil 76 | 77 | 78 | ## Strategic Design 79 | 80 | These resources teach how to decompose a large domain into sub-domains and represent them as high-level architectural components called Bounded Contexts. 81 | 82 | ### Written Articles 83 | 84 | - [Bounded Context](https://martinfowler.com/bliki/BoundedContext.html), Martin Fowler 85 | 86 | - [Tackling business complexity with strategic domain-driven design](https://inside.getyourguide.com/blog/2019/11/18/tackling-business-complexity-with-strategic-domain-driven-design), Leandro Lages 87 | 88 | ### Videos 89 | 90 | - [Bounded Contexts](https://www.youtube.com/watch?v=ZEJ2Vyk1HA0), Cyrille Martraire 91 | 92 | - [Practical DDD: Bounded Contexts + Events](https://www.youtube.com/watch?v=Nr6jAwOunGM), Indu Alagarsamy 93 | 94 | - [Emergent Boundaries](https://verraes.net/2017/04/emergent-boundaries/), Matthias Verraes 95 | 96 | - [Socio-technical architecture](https://www.youtube.com/watch?v=9Ft39wz6fHM), Ora Egozi Barzilai and Evelyn van Kelle 97 | 98 | - [All Our Aggregates Are Wrong](https://www.youtube.com/watch?v=KkzvQSuYd5I), Mauro Servienti 99 | 100 | ### Other Resources 101 | 102 | - [Aligning organization and architecture with strategic DDD](https://speakerdeck.com/mploed/aligning-organization-and-architecture-with-strategic-ddd), Michael Plöd 103 | 104 | - [Strategic Domain-Driven Design Kata: Delivericious](https://medium.com/nick-tune-tech-strategy-blog/strategic-domain-driven-design-kata-delivericious-b114ca77163), Nick Tune 105 | 106 | 107 | ## Tactical DDD / Domain-as-code 108 | 109 | These resources show how to design software which is closely aligned to the business domain so that it is easier to understand and change. 110 | 111 | ### Ebooks 112 | 113 | - [Architecture Patterns with Python](http://www.cosmicpython.com), Harry Percival & Bob Gregory 114 | 115 | 116 | ### Written Articles 117 | 118 | - [Aggregates & Entities in Domain-Driven Design](http://thepaulrayner.com/blog/aggregates-and-entities-in-domain-driven-design/), Paul Rayner 119 | 120 | - [Strengthening your domain: a primer](https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/), Jimmy Bogard 121 | 122 | ### Videos 123 | 124 | - [Domain Modeling Made Functional](https://www.youtube.com/watch?v=1pSH8kElmM4), Scott Wlaschin 125 | 126 | - [Design in the small](https://www.youtube.com/watch?v=3iLW4puXHvc), Yves Reynhout 127 | 128 | - [Refactoring for DDD Without Microservicing Your Monolith](https://www.youtube.com/watch?v=y2mL-6CcYBw), Harry Brumleve 129 | 130 | ### Other Resources 131 | 132 | - [DDD By Examples](https://github.com/ddd-by-examples/library), Jakub Pilimon and Bartłomiej Słota 133 | 134 | ## Case Studies 135 | 136 | - [OOps I DDD it again and again](https://www.slideshare.net/OraEgoziBarzilai/mucon-2019-oops-i-ddd-it-again-and-again), Ora Egozi-Barzilai 137 | 138 | - [10 Lessons from a Long Running DDD Project](https://lostechies.com/jimmybogard/2016/06/13/10-lessons-from-a-long-running-ddd-project-part-1/), Jimmy Bogard 139 | 140 | ## DDD Blogs 141 | 142 | - [Alberto Brandolini](https://ziobrando.blogspot.it/) 143 | 144 | - [DDD Weekly](http://dddweekly.com/) 145 | 146 | - [Kenny Baas-Schwegler](https://baasie.com/) 147 | 148 | - [Paul Rayner](http://thepaulrayner.com/) 149 | 150 | - [Udi Dahan](http://udidahan.com/category/ddd/) 151 | 152 | - [Vladik Khononov](https://vladikk.com/) 153 | 154 | - [Zsofia Herendi](https://www.zherendi.com/blog) 155 | 156 | 157 | 158 | ## Contributions and Inspiration 159 | 160 | In addition to the content creators of each of the resources, thanks also goes to the following people: 161 | 162 | - [Krzysztof Góralski](https://twitter.com/k_goralski) 163 | 164 | - [Nick Chamberlain](https://twitter.com/heynickc) 165 | 166 | We also thank to all [existing and future contributors](https://github.com/ddd-crew/free-ddd-learning-resources/graphs/contributors) 167 | --------------------------------------------------------------------------------