About the Book
This book is a modern, in-depth explanation of the principles of Domain-driven Design. The book has a writing style that is easy to understand, explaining the theory and boasts numerous exercises and examples. The exercises and sample solutions build on a high-quality, complex case study on mortgage loans. This detailed case study is the basis for all the practical explanations in the book.
The book focuses on topics such as collaboration with domain experts, agility and strategic design. It discusses in detail how we can use knowledge crunching methods to shape communication with non-technical stakeholders in order to derive an Ubiquitous Language. The book also explains how the ideas of agility harmonize with the iterative modeling activity of Domain-driven Design. In the field of strategic design, the book discusses the connections between domains, sub-domains and bounded contexts. It also illustrates how bounded contexts can relate to microservices architectures. In addition, the book is very detailed and, above all, practice-oriented on the subject of context maps, including a consistent suggestion for graphical representation. However, this does not mean that topics such as tactical design with its internal building blocks are neglected. In this part, patterns such as Entity, Value Object, Aggregate, Domain Event, Service, Factory and Repository are examined and explained using detailed examples. The book also deals with architectural patterns such as hexagonal architecture, sometimes also known as onion architecture, and also discusses the advantages and disadvantages of such approaches. The book is rounded off by a chapter on implementation aspects using Java with Spring Boot, which leads to a complete implementation of the case study.
The current release / version of Hands-on Domain-driven Design - by example offers:
- A sophisticated, high quality case study
- An easy to understand writing style
- Many exercises with solutions that weigh in on the pros and cons of the design options given
- Tips & Tricks with best practices for the collaboration with business domain experts and other non-technical folks
- A broad overview of knowledge crunching techniques such as Event Storming, Domain Storytelling, User Story Mapping and Behavior-driven Design (Example Mapping)
- An overview how Domain-driven Design relates to agile principles and practices such as Continuous Delivery and DevOps
- A very detailed explanation of everything related to strategic design starting with domains, subdomains and bounded contexts including a deep dive into the identification of bounded contexts
- Covers how to transfer the idea of a bounded context towards microservice architectures
- A practice-oriented description of the context map, which depicts relationships between systems and their teams in a holistic way. This description is clearly focused on the practical use of the context map and is rounded off by a coherent, consistent graphical representation
- Explanations to the patterns for tactical design including entity, value object, aggregate, service, repository, domain event and factory
- Architectural patterns such as the hexagonal architecture
Currently working on:
- CQRS subchapter
- Explanation of the implementation of the case study with Java and Spring Boot
About the current status:
I am aware that I am behind my planned schedule, however I am committed to finalizing this book within the next few months. Thanks for your patience.
About the Author
Michael currently works as a Fellow for innoQ in Germany. He is a Domain-Driven Design practitioner since 2005 and looks back to over 15 years of hands-on consulting experience. He had the idea to write this DDD book through his training he is regularly conducting on the topic. In addition to that Michael is a regular and award winning speaker at national and international conferences.
In his private life he loves photography, vinyl, concerts, heavy rock music and pug dogs.