Использую Event Driven Architecture и при таком подходе будет.
А. Сервис "Пользователей," со всей необходимой информацией по пользователю и со всеми действиями касающимися пользователя. Тут информация по пользователю - выступает "Источником правды".
В. Сервис "Транзакций", который содержит всю информацию по транзакциям и минимальную иформацию по пользователям. Может просто хранить только user id (для проверки целостности данных)
С. Сервис "Поиска". Хранит всю информацию необходимую для поисковых запросов пользователя. Может содержать только Elastic или что-то подобное и не иметь реляционной или обьектной БД.
D. Сервис "Message broker"
Сервис "А" по любому событию над пользователем (CRUD) посылает всем подписанным сервисам, через "D" собщения об изменении информации по пользователю. Сервисы "В" из сообщений берут нужный минимум информации из сообщений и сохраняют у себя. Сервис "С" агрегирует всю нужную информацию для пользовательских запросов. Все подписанные на "D" сервисы поддерживают дублирование сообщений.
При возникновении проблем сервис являющийся "Источником правды" просто заново отсылает все сообщения с данными, а подписанные сервисы обновляют свое состояние.