In this new book, leading practitioner Greg Young shows how to incorporate effective domain modeling throughout the software development process, designing large and complex systems so they can be built more efficiently, dynamically, and successfully. Young takes the next steps beyond the DDD principles and best practices introduced by Eric Evans in Domain-Driven Design: Tackling Complexity in the Heart of Software. One step at a time, he explains how to use DDD with Command-Query Responsibility Separation (CQRS) to select the right design solutions and make them work in the real world. System designers and architects will learn how CQRS and event sourcing can simplify construction, decentralize decision-making, and make system development more flexible and responsive. Young also shows how DDD and CQRS make it possible to coordinate larger development teams without higher levels of management maturity. To write this book, Young has drawn on his widely-praised 3-day course on CQRS, Domain Events, Event Sourcing, and DDD. He answers many of the questions course participants have raised, shows how to overcome common architectural obstacles to DDD, and guides professionals in solving the #1 problem they've encountered: translating DDD's abstract concepts into concrete solutions.