Strategic Design & Common Patterns
In this lesson, we'll get an introduction to strategic design and look at some important strategic design patterns.
We'll cover the following...
Strategic design #
The division of the system into different bounded contexts is part of strategic design, which belongs to the practices of domain-driven design (DDD). The strategic design describes the integration of bounded contexts.
The drawing above shows the fundamental terms of strategic design.
-
The bounded context is the context in which a specific domain model is valid.
-
The bounded contexts depend on each other. Usually, each bounded context is implemented by one team.
-
The upstream team can influence the success of the downstream team. However, the downstream team cannot influence the success of the upstream team.
- For example, the success of the team responsible for payment depends on the order process team.
- If data such as prices or credit card numbers are not part of the order, it is impossible to do the payment.
- However, the order process does not depend on the payment to be successful.
- Therefore, order processing is upstream. It can make payment fail. Payment is downstream since it cannot make the order process fail.
DDD describes in several patterns how exactly communication takes place. These patterns not only describe the architecture, but also the cooperation within the organization.
The customer/supplier pattern #
With this customer/supplier pattern, the supplier is upstream and the customer is downstream. However, the customer can ...