Я сталкивался с этим шаблоном, и я думаю, что он полезен для вашей ситуации.
Шаблон называется CQRS (разделение ответственности по запросам команд, полный набор)
Шаблон предполагает, что у вас есть система поиска событий.на месте, что является значительным изменением, которое у вас есть, поскольку вы работаете с микросервисами.
При изменении любого EntityA с Service1 , Service1 публикует событие.То же самое касается Service2 , когда любой EntityB si изменился, он также опубликует событие.
Тогда у нас есть Service3 , который подписывается насобытия Service1 и Service2 объединяют данные и сохраняют их в своей локальной базе данных.Теперь все, что вам нужно сделать, это позвонить Service3 , чтобы получить агрегированные данные от Service1 и Service2 .
Конечно, этот шаблон поставляется снедостаток, как возможная согласованность, но в некоторых сценариях он может быть наиболее подходящим.
Идея в основном отсюда: https://microservices.io/patterns/data/cqrs.html. Я бы также прочитал хотя бы раздел «когда использовать этот шаблон»отсюда: https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs