Please enable JavaScript.
Coggle requires JavaScript to display documents.
Domain-Driven Design - Coggle Diagram
Domain-Driven Design
Strategic Design :star:
Domains :star:
Business Domain
Problem Space Domain
Subdomains :star:
Subpart of a domain
Represents a business capability
Core Domain :star:
Main subdomain in a problem space
Bounded Context :star:
Models a business capability or subdomain
Ubiquitous Language :star:
Ubiquitous within a context
It's not a data model for the entire company
Highglights
A single team develops the context
1 or more Domain Experts :star:
1 or more developers
Context Mapping :star:
Highlights
How to map/share certain parts of a context's language with language of another context
Types
Partnership
Teams/contexts need to collaborate with each other
Shared Kernel
Model that will be shared between 2 contexts
Customer Supplier
There is a dependency between 2 contexts
One context gets what it can get from the other one
Conformist
Internally accepting the other model as part of the language
Anticorruption Layer
Interaction with a Big Ball of Mud
We protect our ubiq. language from the terms in the BBM
Separate Ways
Downstream won't bother trying to integrate
Open-Host Service
There is some kind of API that it's pretty nice to use
Published Language
Similar to Open-Host Service but the language is a standard
Interchange Context
There is a context that translates from one language to another
Bubble Context
Bounded Context inside a Big Ball of Mud
Highlights
Normally ~Business Capability == ~Subdomain == ~Bounded Context
Basics
What is it?
DDD is a pattern language
It helps us understand what it's core to the business and what's not
Help us prevent a Big Ball of Mud
Divides in two parts
Strategic Design
Tactical Design
Architecture
Basics
DDD is not an architecture
Sub-domains can be implemented as modules
Sub-domains can be implemented as a monolith or as microservices
DOMA = Domain-Oriented Microservice Architecture
Microservices are grouped as part of a domain
Ports and Adapters
Better name than hexagonal
DDD adds another layer to hexagonal
EventStorming :star:
Basics
It is a flexible workshop format for collaborative exploration of complex business domains.
Created by Alberto Brandolini
Two levels
Strategic Level
Big Picture
Problem-Space Domain
Design Level
Subdomain/Bounded Context
Elements
Events
Commands
Policies and sagas/processes
Entities, aggregates and domain services
Views, queries and UIs
Users, personas and roles
Opportunities
Problems and Hot Spots
External Systems
Tactical Design