Как доставлять данные в микросервисы через Event?

Подскажите best practice использования Event Driven Architecture.

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

Вопрос: каким образом доставлять в МС необходимые данные:
1) расширять каждый раз payload для ивента, чтобы удовлетворить потребность в каких-то полях для МС
2) генерировать разные ивенты, с разным набором данных, т.е. каждый МС использует определенный ивент префикс.?
3) все МС получают один ивент и недостающие
данные дотягивают по API у монолита?

Последний вариант самый адекватный, как по мне. правильно ли это, с точки зрения идеологии EDD?
Поделитесь, пожалуйста, опытом.
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Все зависит от жизненного цикла данных. Надо понимать что событийная система не обязана отрабатывать в режиме реального времени. Для некоторых случаев необходимо расширять payload, а для каких-то наоборот. Например, если у вас микросервис создаёт заказ на основе запроса пользователя то логично в payload отправить запрос пользователя, а если микросервис прогревает кэш, то логично выдать минимум данных чтобы остальное взять из базы. И в обоих случаях, скорее всего, на самом деле, будет комбинация
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы