Во время моего первого набега на интеграцию систем я определил следующие ограниченные контексты:
- Выставление счетов
- Подписки
- Коллекции
В частности, для функции «приостанавливает просроченные учетные записи» ограниченного контекста коллекций мы бы:
- Получить список просроченных счетов из Invoicing
- Отправить пользователю уведомление о приостановке (внутренняя служба электронной почты)
- Отправить запрошенную приостановку в ограниченном контексте подписок
Я понимаю, как можно использовать блокирующий веб-сервис для интеграции ограниченных контекстов, но я вижу, что это вызовет проблемы в случае, если удаленный сервис не работает.
Я знаю о шинах сообщений, но не уверен, как мы будем интегрироваться со стратегией сообщений:
Будет ли каждый контекст содержать локальную модель чтения внешнего ограниченного контекста (прослушивать события из внешних ограниченных контекстов, когда они добавляют/удаляют объекты и сопоставляют их с помощью уникального идентификатора)?
При использовании сообщений создаем ли мы буквально локальную копию объекта (с полями использования для локального контекста) из интересующего удаленного контекста? Или я что-то еще упускаю?