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