Files
system-design-101/data/guides/8-key-concepts-in-ddd.md
Kamran Ahmed ee4b7305a2 Adds ByteByteGo guides and links (#106)
This PR adds all the guides from [Visual
Guides](https://bytebytego.com/guides/) section on bytebytego to the
repository with proper links.

- [x] Markdown files for guides and categories are placed inside
`data/guides` and `data/categories`
- [x] Guide links in readme are auto-generated using
`scripts/readme.ts`. Everytime you run the script `npm run
update-readme`, it reads the categories and guides from the above
mentioned folders, generate production links for guides and categories
and populate the table of content in the readme. This ensures that any
future guides and categories will automatically get added to the readme.
- [x] Sorting inside the readme matches the actual category and guides
sorting on production
2025-03-31 22:16:44 -07:00

53 lines
2.0 KiB
Markdown

---
title: "8 Key Concepts in Domain-Driven Design"
description: "Explore 8 key concepts in Domain-Driven Design for better software."
image: "https://assets.bytebytego.com/diagrams/0011-8-key-concepts-in-ddd.png"
createdAt: "2024-03-06"
draft: false
categories:
- software-architecture
tags:
- DDD
- Software Design
---
![](https://assets.bytebytego.com/diagrams/0011-8-key-concepts-in-ddd.png)
Domain-driven design advocates driving the design of software through domain modeling.
Unified language is one of the key concepts of domain-driven design. A domain model is a bridge across the business domains.
## Domain Driven Design
Domain-driven design advocates driving the design of software through domain modeling.
Unified language is one of the key concepts of domain-driven design. A domain model is a bridge across the business domains.
## Business Entities
The use of models can assist in expressing business concepts and knowledge and in guiding further development of software, such as databases, APIs, etc.
## Model Boundaries
Loose boundaries among sets of domain models are used to model business correlations.
## Aggregation
An Aggregate is a cluster of related objects (entities and value objects) that are treated as a single unit for the purpose of data changes.
## Entities vs. Value Objects
In addition to aggregate roots and entities, there are some models that look like disposable, they don't have their own ID to identify them, but are more as part of some entity that expresses a collection of several fields.
## Operational Modeling
In domain-driven design, in order to manipulate these models, there are a number of objects that act as "operators".
## Layering the architecture
In order to better organize the various objects in a project, we need to simplify the complexity of complex projects by layering them like a computer network.
## Build the domain model
Many methods have been invented to extract domain models from business knowledge.