Обновить

Комментарии 3

У нас CQRS, поэтому read side eventually consistent.

смотря какой performance, смотря какая delay

Спасибо за статью!

Про идемпотентность консьюмера через inbox по event_id - да, нужная защита от at-least-once.

На практике я видел ловушку уровнем выше и стоит она дорого: event_id спасает от повторной доставки одного и того же события, но не от двух разных событий с одним бизнес-намерением. Клиент ретраит по таймауту, на write-стороне рождается новый event_id - и inbox честно пропускает его как новый потому что по id он и правда новый. Лечили дедупом ещё и по ключу намерения операции, а не только по id события. По сути это как две идемпотентности на разных слоях: техническая по event_id у консьюмера и смысловая по ключу намерения на входе команды.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации