Что такое паттерн Event-Driven Architecture (EDA) и в чём разница между подходами Event Notification и Event-Carried State Transfer? Как выбор подхода влияет на степень связанности микросервисов и объём сетевого трафика?

В EDA сервисы реагируют на события. Event Notification сообщает о факте изменения, а Event-Carried State Transfer передаёт данные, достаточные для обновления локального состояния потребителя.

Короткий ответ

Что ответить на собеседовании

В EDA сервисы реагируют на события. Event Notification сообщает о факте изменения, а Event-Carried State Transfer передаёт данные, достаточные для обновления локального состояния потребителя.

Подробный разбор

Ответ с пояснениями

В EDA сервисы реагируют на события. Event Notification сообщает о факте изменения, а Event-Carried State Transfer передаёт данные, достаточные для обновления локального состояния потребителя.

Уведомление вроде CustomerUpdated(id) компактно, но потребителю может потребоваться дополнительный запрос к источнику. Это создаёт временную зависимость от его доступности и дополнительный сетевой обмен.

Событие с нужными полями крупнее, зато позволяет поддерживать локальную проекцию и работать автономнее. Появляются требования к версиям схемы, порядку, повторной доставке и защите распространяемых данных. Передача состояния уменьшает зависимость во время выполнения, но не устраняет связанность контрактом. Выбирайте состав события по потребностям потребителей, не копируйте всю запись автоматически.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее