Domain-Driven Design
Ubiquitous language, bounded contexts and context mapping.
3 to work through
-
advanced
Walk me through how you would size an aggregate in a marketplace of eBay's shape, where one seller can hold 80,000 active listings. Then tell me what your choice costs at runtime.
3 min answer -
advanced
Where does domain-driven design pay for itself in a large marketplace, and where is it overhead?
2 min answer -
advanced
You are decomposing a monolith. How do you find the boundaries using evidence rather than opinion?
2 min answer
3 terms in this topic
Aggregate
A cluster of objects treated as a single unit for data changes, with one root through which all modification passes, defining the consistency boundary.
conceptAnaemic Domain Model
Objects that hold data with no behaviour, leaving business rules scattered across service classes where they are duplicated and inconsistently applied.
practiceUbiquitous Language
A shared vocabulary used identically by domain experts and in the code, so that translation between business and implementation is unnecessary.
Neighbouring topics
Software Architecture
General material on the engineering underneath an architecture.
SOLID
Five design principles, two of which scale beyond the class.
Bounded Contexts
Where one model ends and another begins, and why forcing one fails.
Clean Architecture
Concentric layers with dependencies pointing only inwards.
Hexagonal Architecture
Ports defined by the domain, adapters supplied by infrastructure.
Microservices
Independent deployability, and the distributed problems it buys.
Modular Monolith
Enforced internal boundaries without a network between them.
Service Boundaries
Drawing lines along change patterns rather than technical layers.
Design Patterns
Reusable solutions at code level, and when they become ceremony.
Refactoring
Changing structure without changing behaviour, in verified steps.
Technical Debt
Deliberate, tracked and repaid — as distinct from mess.
Testing Strategies
The pyramid, and the contract tests distributed systems add to it.
Contract Tests
Capturing what consumers actually use, not what the API documents.
CI/CD
Continuous integration and delivery, and the architecture that caps them.
Release Strategies
Blue-green, canary, shadow and progressive delivery.
Feature Flags
Decoupling deploy from release, with an expiry date.
Trunk-Based Development
Short-lived branches, and unmerged work as inventory.
Code Review
Where architectural rules are enforced by people rather than by tools.
DORA Metrics
Throughput and stability moving together rather than trading off.