Ради вопроса, скажем, у меня есть 2 микросервиса.
- Управление идентификацией
- Бухгалтерия
Я знаю, что каждый микросервис не должен быть тесно связан и должен иметь собственную базу данных.
Предположим, что в бухгалтерском учете есть счета-фактуры, и у каждого счета-фактуры есть агент, выписавший его. Агент из бухгалтерии также существует как Пользователь в микросервисе Identity.
Если я хорошо понял, данные из управления идентификацией (пользователи) должны быть скопированы в бухгалтерию (агенты) и должны копировать только те данные, которые необходимы для этого ограниченного контекста (имя и фамилия), чтобы счет-фактура мог иметь правильный issuingAgentId
.
Это правильный способ сохранить согласованность данных и обмен ими между контекстами? Каждый раз, когда пользователь создается в микросервисе идентификации, событие «UserCreated» будет публиковаться, и учетная запись или любая другая служба, заинтересованная в этом событии, должна прослушивать и обрабатывать его, добавляя соответствующий агент? То же самое касается обновления информации о пользователе.