Domain-Driven Design
Implement complex software with Domain-Driven Design. Focus on business logic and improve collaboration. Discover effective domain modeling techniques.
Implement complex software with Domain-Driven Design. Focus on business logic and improve collaboration. Discover effective domain modeling techniques.
Heard the buzz about Domain-Driven Design (DDD)? This article is the starting line for understanding it. We'll unpack core ideas like the Domain itself and the crucial role of Domain Experts.
Discover the initial steps of Domain-Driven Design through a relatable story. Follow a consultant's first call with a bookstore owner to uncover business needs, identify Domain Experts, and set the stage for an Event Storming workshop.
A practical introduction to Event Storming for developers and architects. Learn what domain events are, why naming them matters, and how they help build loosely coupled, highly cohesive systems.
Discover how to run an effective Event Storming workshop, from tools and setup to mapping business events, commands, and policies. Ideal for software architects and teams exploring complex domains with Domain-Driven Design.
Discover how strategic design in Domain-Driven Design (DDD) helps align software architecture with business goals. Learn about Core, Supporting, and Generic Subdomains through a practical example.
Discover how Ubiquitous Language helps bridge communication gaps in software projects by aligning teams around shared vocabulary. Learn how this core concept of Domain-Driven Design improves clarity, consistency, and collaboration across roles.
An insightful article exploring domain-driven design through clear explanations of ubiquitous language, bounded contexts, and upstream/downstream relationships.
Learn how to define a Context Map and which integration pattern to use.
You already know your Strategy, now it's time to use some tactics.
A piece of identifiable data, which changes overtime.
Immutable object carrying value of some significance.
This building block sets transaction boundaries for Entities.
Event informs other Aggregates about what have happened.
Special way to obtain a collection of Aggregates together with their Child Entities.
Stateless object, defining and validating business rules and invariants.
Its responsibility is to create initiated Aggregate with entities and value objects.
Modularity helps you to keep your architecture clean.