- Cloud-Native Applications in Java
- Ajay Mahajan Munish Kumar Gupta Shyam Sundar
- 211字
- 2021-06-24 19:07:20
Classification into up/downstream services
Another way to break down the application systems is to categorize them by upstream and downstream data flow models. Core entities in the system comprise the upstream services. These upstream services than raise events that are subscribed by the downstream services to augment their functionality. This is aimed at decoupling the systems and help improve the overall business agility. This works well with Reactive, also known as event-driven, architecture concepts.
Let's take a simplified view of an e-commerce application, where the core entities are CUSTOMER and PRODUCT. The ORDER service depends on information about customers and products from the core entities. Next, we are building services that provide RECOMMENDATION and PERSONALIZATION services to the customer. The RECOMMENDATION and PERSONALIZATION services depend upon data from the core entities—CUSTOMER, PRODUCT, and ORDER. When there is a change to any of the core entities, changes are published. These changes are picked up by the RECOMMENDATION and PERSONALIZATION services, where they augment this data with additional attributes to provide relevant services. The RECOMMENDATION and PERSONALIZATION services downstream these services:

This model of classifying the business capabilities into UPSTREAM and DOWNSTREAM help define the dependency relationships between services and change the impact of any upstream services on the downstream services.