Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.
#Domain driven design vaughn vernon software#
Praise for Implementing Domain-Driven Design “With Implementing Domain-Driven Design, Vaughn has made an important contribution not only to the literature of the Domain-Driven Design community, but also to the literature of the broader enterprise application architecture field.' For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.' Randy Stafford, Architect At-Large, Oracle Coherence Product Development ' This book is a must-read for anybody looking to put DDD into practice.' Udi Dahan, Founder of NServiceBus Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Unit Testing and Specifications.Įvent Sourcing in Functional Languages. Rendition Adapters and Handling User Edits.Ĭomposing Multiple Bounded Contexts.Įnterprise Component Containers.Īppendix A: Aggregates and Event Sourcing: A+ES. State Representations of Aggregate Instances.ĭealing with Multiple, Disparate Clients. Render Aggregate Instances from a Domain Payload Object. Use a Mediator to Publish Aggregate Internal State. Render Data Transfer Object from Aggregate Instances. When Messaging or Your System Is Unavailable. Process State Machines and Time-out Trackers.ĭesigning a More Sophisticated Process.
Long-Running Processes, and Avoiding Responsibility. Staying Informed about Product Owners and Team Members.Ĭan You Handle the Responsibility?. Implementing the REST Client Using an Anticorruption Layer. Testing with In-Memory Implementations.Ĭhapter 13 Integrating Bounded Contexts.ĭistributed Systems Are Fundamentally Different.Įxchanging Information across System Boundaries. Using Law of Demeter and Tell, Don?t Ask.įactories in the Domain Model.įactory Method on Aggregate Root.Ĭreating CalendarEntry Instances.Ĭreating Discussion Instances.Ĭollection-Oriented Repositories.Ĭonsiderations for a TopLink Implementation. Is It the Team Member?s Job?.Ĭreate a Root Entity with Unique Identity. Rethinking the Design, Again.Įxploring Another Alternative Design. Reason Two: Lack of Technical Mechanisms. Rule: Use Eventual Consistency Outside the Boundary. Making Aggregates Work Together through Identity References. Rule: Reference Other Aggregates by Identity. Rule: Model True Invariants in Consistency Boundaries. Using Aggregates in the Scrum Core Domain.įirst Attempt: Large-Cluster Aggregate. Modules of the Agile Project Management Context. Publishing Message-Based Notifications.īasic Module Naming Conventions. Publishing Notifications through Messaging Middleware. Publishing Notifications as RESTful Resources. Messaging Infrastructure Consistency.Īutonomous Services and Systems. What a Domain Service Is (but First, What It Is Not). ORM and Many Values Backed by a Join Table. ORM and Many Values Backed by a Database Entity.
ORM and Many Values Serialized into a Single Column. Reject Undue Influence of Data Model Leakage. Uncovering Entities and Properties.ĭigging for Essential Behavior. When the Timing of Identity Generation Matters.ĭiscovering Entities and Their Intrinsic Characteristics. Persistence Mechanism Generates Identity.Īnother Bounded Context Assigns Identity. Long-Running Processes, aka Sagas.ĭata Fabric and Grid-Based Distributed Computing.Įvent-Driven Fabrics and Domain Events.Īpplication Generates Identity. Key Aspects of a RESTful HTTP Server.Ĭommand-Query Responsibility Segregation, or CQRS.ĭealing with an Eventually Consistent Query Model. Interviewing the Successful CIO.ĭependency Inversion Principle. Projects and Organizational Relationships. Identity and Access Context.Īgile Project Management Context. Room for More than the Model.Īligning with Technical Components. Why Strategic Design Is So Incredibly Essential. The Challenges of Applying DDD.įiction, with Bucketfuls of Reality.
New Tools, Both Strategic and Tactical, Are Employed. The Organization Gains a Useful Model of Its Domain.Ĥ.