/blog / series/ddd-series
Domain-Driven Design (DDD) Series
11 posts, in reading order
A practical walk through Domain-Driven Design for backend engineers: from deciding whether DDD fits your project at all, through the building blocks — entities, value objects, aggregates, domain services and domain events — to strategic design with bounded contexts.
The series is honest about the cost: DDD pays off in complex domains and actively hurts in simple CRUD, so two full posts are devoted to when not to use it. Examples come from real fintech and e-commerce systems, not toy models.
$ posts in reading order
01
What Domain-Driven Design Is (DDD series part 1)
Part 1 of the DDD series: modelling the business domain rather than the database, and the principles that follow once the model is the centre.
2 min
02
Benefits of using DDD (DDD series part 2)
Part 2 of the DDD series: what a shared vocabulary with domain experts actually buys you, and which of the claimed benefits depend on having one.
2 min
03
Who should consider using DDD? (DDD series part 3)
Part 3 of the DDD series: which organisations get value from it, from regulated domains to complex products, and which get overhead instead.
2 min
04
Domain Model (DDD series part 4)
Part 4 of the DDD series: the domain model as a shared representation of business concepts, relationships and rules, not a diagram of database tables.
2 min
05
Bounded Context (DDD series part 5)
Part 5 of the DDD series: a bounded context is the boundary inside which one model and one set of terms hold, and why two contexts must not share it.
3 min
06
Value object (DDD series part 6)
Part 6 of the DDD series: value objects carry no identity and are defined entirely by their attributes, which is what makes them safe to share.
2 min
07
Entity (DDD series part 7)
In Domain-Driven Design (DDD), the concept of an Entity is used to represent the key concepts of the business domain.
3 min
08
Services (DDD series part 8)
Part 8 of the DDD series: what belongs in a domain service, what belongs on an entity or a value object, and how to tell which one you are looking at.
3 min
09
Mastering Transactions: The Power of Aggregates in DDD
Part 9 of the DDD series: the aggregate as a transactional consistency boundary, worked through e-commerce, banking and healthcare examples.
▸ Domain-Driven Design (DDD) Series · 9#ddd3 min
10
Domain Events in DDD (DDD series part 10)
Discover the benefits of using Domain Events in DDD and how they can improve the flexibility and maintainability of your software.
3 min
11
Alternatives to Domain-Driven Design, and When to Use Them
DDD is not a default. The real alternatives, transaction script, active record, table module and tactical-only DDD, and how to tell which you need.
7 min