Concepts
Ubiquitous language
- use the same terms in code as the user use
- have common language between delivery team and actual people (aka customers)
- helps to understand business by logic
- helps with communication
- use real-world language in code
Aggregates
- a representatino of real domain concept
- something like an
Order
, anInvoice
,Stock Item
- something like an
- aggregates typically have an information cycle around them
- in general
- aggregate as something that has
- state
- identity
- information cycle
- that will be managed as part of the system
- aggregate as something that has
- aggregates can have relationships to other aggregates
Bounded context
- a larger organizational boundary
- within it explicit responsibilities need to be carried out
- bounded contexts hide implementation details ()
- bounded contexts contain
1-n
aggregates- some aggregates may be exposed outside the bounded context
- others may be hidden internally
Event Storming
- collaborative brainstorming exercise designed to help design a domain model
- invented by Alberto Brandolini
Boundaries between microservices
- There are some factors when defining clear boundaries between Microservices
- volatility
- data
- also with concern to security
- technology
- organizational
- Layering Inside vs Layering Outside
Resources
- 2023-05-11 ◦ Domain-Driven Design: Bridging the Gap Between Business and Technology
- 2023-03-13 ◦ A gentle introduction to Domain Driven Design | by The Lone Architect | Medium
- 2022-12-01 ◦ Michael Plöd (@mploed) on Speaker Deck
- Hands-on Domain-driven Design - by Example (on leanpub)
- writes about DDD in general