Domain-Driven Design & Bounded Contexts
In this lesson, we'll discuss what domain-driven design is and how bounded contexts fit into that definition.
Bounded context and strategic design #
Regarding to the domain architecture, the concept of micro and macro architecture has long been a common practice. A macro architecture divides the domains into coarse-grained modules. These modules are further divided as part of the micro architecture.
For example, an e-commerce system can be divided into modules and sub-modules as follows:
- Customer registration
- Order process
- Data validation
- Freight charge calculation
- Payment
- Shipping
The internal architecture of the order process module is, however, hidden from the outside and can be altered without affecting other modules. This flexibility to change one module without influencing the other modules is one of the main advantages of modular software development.
An example for a domain architecture #
The drawing above shows an example of the division of a system into multiple domain modules. In this division, each module has its own domain model. Let’s discuss each.
-
To search successfully, data, such as ...