Domain-Driven Design

Implement complex software with Domain-Driven Design. Focus on business logic and improve collaboration. Discover effective domain modeling techniques.

Image

Talk Of The Town

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.

Image

SHELF Comes To Trinity

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.

Image

Events, Coupling And Cohesion

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.

Image

Event Storming

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.

Image

Strategic 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.

Image

Ubiquitous Language

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.

Image

Bounded Context

An insightful article exploring domain-driven design through clear explanations of ubiquitous language, bounded contexts, and upstream/downstream relationships.

Context Map

Learn how to define a Context Map and which integration pattern to use.

Tactical Domain-Driven Design

You already know your Strategy, now it's time to use some tactics.

Entity

A piece of identifiable data, which changes overtime.

Value Object

Immutable object carrying value of some significance.

Aggregate

This building block sets transaction boundaries for Entities.

Domain Event

Event informs other Aggregates about what have happened.

Repository

Special way to obtain a collection of Aggregates together with their Child Entities.

Domain Service

Stateless object, defining and validating business rules and invariants.

Factory

Its responsibility is to create initiated Aggregate with entities and value objects.

Module

Modularity helps you to keep your architecture clean.