Challenge in a microservice / SOA architecture: how to efficiently integrate data from multiple service providers into one result list (e.g. orders and orderDetails in one list) ... one solution: [link] #soa #microservices
My brief summary:
Problem: You want to display a result list in any kind oif GUI to your user. This result list has to collect data from multiple services, suich as orders and order-details. User wants the answer fast, so asking one service after the other is not the best option.
Proposed solution in article
Aggregate all relevant data in one “aggregate view” table (NoSQL could be used for this, in my opinion also fine with any traditional DB)
Problem with aggregate views: how to updates that can still occur in any of the (independant) services
Make use of a “event-driven data-management” architecture. Meaning: all updates in any of the services which are relevant for the aggregate view are put in a message queue. Listener are notified of the change an are able to update the aggregate view.
Should work fine if aggregates are not “too broad” (meaning too many attributes). If there are too many updates the message-broker will become “red hot” and one of the main architectural components on a SOA / micrcoservice architecture.