8/26/2023 0 Comments Bounded context exampleI call this pattern a Fan-out Specification Context - a context responsible for defining a valid specification of the expected behaviour of the system and providing it to subsystems that are responsible for the execution. What these two examples have in common is the pattern of having a central place to define the specification of how the system should behave, and then it is used by multiple loosely coupled or independent subsystems. After enabling we are expecting a set of independent components to communicate with each other in a way that delivers a great customer experience based on the defined specification. The whole program specification needs to be cohesive and valid before it can be enabled for production use. As part of the configuration, the administrator can define territories that the program operates in, enable currencies, payment integrations, rates at which points are accrued and so on. Once it’s all done, then the account configuration can be published and the users can access services defined in the specification.Īnother example might be a company offering a loyalty program as a service. if we want to have access to Google Docs then we also need to have Google Drive enabled and so on. At this point, Google wants to ensure that the configuration is correct and that customer isn’t going to run into any problems after enabling the service. When the contract is negotiated all details such as discounts, available services, user and storage limits are agreed. Let’s imagine you a corporation that decided to buy a GSuite from Google. Usually, we want to have the specification consistent between the subsystems, but at the same time keep them loosely coupled and independent. The entitys methods take care of the invariants and rules of the entity instead of having those rules spread across the application layer. This often brings a problem of managing the specification of behaviours of the subsystems in the context of the whole system. For example, as part of an order entity class you must have business logic and operations implemented as methods for tasks such as adding an order item, data validation, and total calculation. In some cases, we might want to reduce the local complexity (and cognitive load) by splitting a single system into multiple smaller ones, that are going to be loosely coupled. One of the main challenges of designing distributed systems is how to balance the local and global complexity.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |