Published Sep 3, 2019

Episode-226-Eric-Evans-on-Domain-Driven-Design-at-10-Years

Eric Evans revisits the enduring principles of Domain-Driven Design (DDD) as he discusses its integration with modern architectures like microservices and techniques such as Event Sourcing and CQRS, showcasing their collective impact on software scalability, efficiency, and strategic design.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Principles

    , the author of the influential book on Domain-Driven Design (DDD), explains the foundational principles that have shaped software development over the past decade. At its core, DDD is about using models to create software that addresses complex business requirements, emphasizing a shared language between business and technical teams, known as the ubiquitous language 1. This approach ensures that everyone involved in a project can crisply describe situations and solutions within the domain.

    We want a language where we can really crisply, concisely describe any situation in the domain and describe how we're going to solve it.

    ---

    Evans highlights the concept of bounded contexts, which define clear boundaries within which specific terms and relationships are understood, preventing confusion and ensuring clarity in complex systems 2.

       

    Challenges

    Implementing Domain-Driven Design is not without its challenges, as discusses the common pitfalls that can lead to project failure. A major issue is the tendency towards perfectionism, where teams aim for overly ambitious models that can derail progress 3. Evans stresses the importance of maintaining discipline, especially in managing bounded contexts, to prevent models from clashing and causing project breakdowns 4.

    Perfectionism prevents people from creating really elegant designs because it slows them down in the early iterations.

    ---

    He advocates for embracing iteration, allowing teams to refine their understanding and improve designs over multiple cycles, rather than striving for perfection from the outset 5.

       

    Impact

    Reflecting on the enduring influence of Domain-Driven Design, expresses surprise at its continued relevance over the years. Unlike many books that fade after a few years, DDD has remained a vital topic, partly due to its adaptability and the evolution of its practices, such as the integration of event sourcing and CQRS 6. Evans acknowledges that while he doesn't plan to update his book, he would rearrange its content to better emphasize critical concepts like bounded contexts earlier in the text 7.

    The DDD has not been static, so the core concepts of it have been very stable.

    ---

    This adaptability has allowed DDD to maintain its significance in the ever-evolving landscape of software development.

Related Episodes