У меня есть несколько микро сервисов. Скажем так:
- micro service consoleUser создает объект Writer и другие объекты, связанные с писателем
- micro service Ebook создает объект Ebook Object и другие объекты, такие как оценка, комментарии и пр. c ...
- micro service appUser создает пользовательский объект приложения пользователя и другие объекты, связанные с пользователем приложения.
Я пытаюсь реализовать компонент CQRS с использованием Spring + elasticsaerch, чтобы получить компонент, в котором данные объединяются. Этот компонент будет использоваться для поиска. Это будет мой поисковый микросервис.
Когда в одном из перечисленных выше микросервисов есть событие Create - Update или delete, этот микросервис отправляет объект в AMQP topi c. Тогда сервис Micro поиска получит эти данные.
Мой вопрос: каков наилучший способ объединения данных? Должен ли я создать один большой Pojo, например:
public class MyBigPojo {
consoleUser myConsoleUserObject;
ebook myEbookList;
appUser appUserListForThisEBook;
}
Или я должен создать один документ на объект. Это как раз то, как я могу сделать, чтобы объединить данные, используя, например, их Id, поэтому, когда я получаю consoleUser, я получаю все электронные книги, опубликованные этим пользователем, и все appuser, которые оставили комментарий?
В случае обновления Как я могу сделать, чтобы просто обновить объект, который должен быть обновлен, не обновляя все в данных слияния?
Заранее спасибо за вашу помощь.