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

2.0 KiB

title, description, image, createdAt, draft, categories, tags
title description image createdAt draft categories tags
8 Key Concepts in Domain-Driven Design Explore 8 key concepts in Domain-Driven Design for better software. https://assets.bytebytego.com/diagrams/0011-8-key-concepts-in-ddd.png 2024-03-06 false
software-architecture
DDD
Software 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.

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.