Здесь есть несколько недоразумений, и я постараюсь перечислить их.Событийно-ориентированные архитектуры на самом деле не предназначены для «межсервисного взаимодействия».Термин событие здесь относится к событиям, произошедшим с вашей системой, которые могут вызвать изменения состояния.Например, клише в этом примере - «депозит» и «снятие» - это события, связанные с доменом, которые произошли с вашей системой.Депозит в этом сценарии представляет собой сложение суммы транзакции в событии депозита , а снятие - вычитание события снятия .Управляемая событиями архитектура эффективно разъединяет данные и обрабатывает данные.
Этого можно легко достичь, организовав все сервисы (сервис предпочтений, сервис продуктов) внутри сервиса уведомлений - но это приведет кв тесной связи там.
В соответствии с пунктом выше, выборка данных из нескольких микроуслуг может не считаться тесной связью.Это также можно считать сплоченность .Сплоченность действует как форма связи, которая уважает область.Например, если эти предпочтения относятся к уведомлениям, то это предпочтение уведомления и, следовательно, может существовать в той же службе.
Для управления продуктами вы можете получать уведомления длякаждый раз, когда вы создаете новый продукт, вы можете распространять имя продукта или идентификатор на шину событий с событием «ProductAdded», которое может заинтересовать службу уведомлений. Служба уведомлений может затем создать продукт как параметр, который пользователи могутподписаться на получение уведомлений.Дайте мне знать, если все это поможет, и если я могу уточнить что-нибудь еще.