Какие подходы используете для иницилизации "нулевого" состояния для нового микросервиса в экосистеме Kafka?
Стандартная EDA архитектура с Kafka. События удаляются через какое-то время (пусть будет неделя).
Собственно, каждый микросервис по получении событий собирает копию тех данных, которые ему нужны от других микросервисов (Пусть, например, будет формирование некоторой информации о новых пользователях).
Вопрос: При добавлении нового сервиса в экосистему, как ему до-обновиться до текущего рабочего состояния с необходимыми данными от других микросервисов, если события уже были удалены? Какие подходы вы используете?
Ответы (1 шт):
Кафка это не БД событий, а всего лишь их транспорт (и распределитель).
Удаление событий через неделю говорит нам о том, что эти события более не актуальны (и никому не должны быть интересны).
Если задача микросервиса работать с текущими данными - пускай с ними и работает. Пришел новый пользователь, подтянули тех.данные, составили ответ, записали состояние в Хранилище. У сервиса никакого длительного состояния быть не должно - его роль Обработка, а не Хранение.