Представьте, что у вас есть форма регистрации пользователя, в которой вы заполняете форму: Имя, Фамилия, Возраст, Адрес, Предпочтительный способ связи: SMS, электронная почта (радиокнопки).
У вас есть 2 микросервиса:
- Служба UserManagement
- Служба связи
Когда пользователь зарегистрирован, мы должны создать 2 агрегата в 2 службах: Пользовательв UserManagementContext и UserCommunicationSettings в Communication.
Есть три способа достижения этой цели:
- Выполнение 2 разных запросов из пользовательского интерфейса.Что если произойдет сбой одного из них?
- Поместите все эти данные в User, а затем создайте событие интеграции со всеми этими данными, перехватите его в CommunicationContext.Жирные события, события интеграции не должны содержать доменные данные, только идентификаторы аггрегатов.
- Поместить сообщение в очередь, чтобы оба контекста имели адаптеры для получения необходимой информации.
Как лучше всего разделить эти данные и сохранить информацию?