domain_driven_design
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| domain_driven_design [2023/11/21 09:16] – skipidar | domain_driven_design [2023/11/21 19:13] (current) – [DDD & Microservices] skipidar | ||
|---|---|---|---|
| Line 32: | Line 32: | ||
| - | ==== DDD & Microservices ===== | + | ==== DDD & Microservices ===== |
| + | |||
| + | === Overview | ||
| DDD has two distinct phases. | DDD has two distinct phases. | ||
| Line 43: | Line 45: | ||
| {{https:// | {{https:// | ||
| - | - Start by analyzing the business domain to understand the application' | + | - Start by **analyzing the business domain** to understand the application' |
| - | - Next, define the bounded contexts of the domain. Each bounded context contains a domain model that represents a particular subdomain of the larger application. | + | - Next, **define the bounded contexts of the domain**. Each bounded context contains a domain model that represents a particular subdomain of the larger application. |
| - Within a bounded context, apply tactical DDD patterns to **define entities, value objects, aggregates, and domain services**. | - Within a bounded context, apply tactical DDD patterns to **define entities, value objects, aggregates, and domain services**. | ||
| - Use the results from the previous step to **identify the microservices** in your application. | - Use the results from the previous step to **identify the microservices** in your application. | ||
| - | == Strategic Design == | + | === Strategic Design |
| In strategic DDD, you are defining the large-scale structure of the system. | In strategic DDD, you are defining the large-scale structure of the system. | ||
| - | == Tactical Design == | + | === Tactical Design |
| Tactical DDD provides a set of design patterns that you can use to create the domain model. | Tactical DDD provides a set of design patterns that you can use to create the domain model. | ||
| Line 59: | Line 61: | ||
| |Value Objects|are identified by their values. Like Address might be one. And re-created rather than copied.| | |Value Objects|are identified by their values. Like Address might be one. And re-created rather than copied.| | ||
| |Aggregate |< | |Aggregate |< | ||
| - | The purpose of an aggregate is to model transactional invariants. Things in the real world have complex webs of relationships. \\ \\ **Example: | + | The purpose of an aggregate is to model **transactional invariants**. Things in the real world have complex webs of relationships. \\ \\ **Example: |
| </ | </ | ||
| |Services|In DDD terminology, | |Services|In DDD terminology, | ||
| Line 68: | Line 70: | ||
| + | |||
| + | Overview of the process | ||
| + | |||
| + | {{https:// | ||
| ==== Single micro-service (called " | ==== Single micro-service (called " | ||
domain_driven_design.1700558179.txt.gz · Last modified: by skipidar
