Kafka умеет больно кусаться, если не смотреть на retry внимательно.
У одного крупного ритейлера внутри шла обычная межсервисная коммуникация: сервисы общались через Kafka, всё выглядело чинно и красиво. Пока не выяснилось, что сообщения у consumer’а могут переигрываться повторно — и не один раз. В итоге один и тот же ивент начинал обрабатываться дважды, трижды, а дальше привет: дубли заказов, странные статусы, лишние списания и разбор полётов по логам в стиле «кто это вообще сделал?» 😬
Проблема в том, что retry часто выглядит как безобидная страховка. Но без аккуратной идемпотентности и понятной стратегии повторов это уже не защита, а минное поле. Особенно когда система растёт, а нагрузка и число сервисов начинают жить своей жизнью.
Вывод простой: в Kafka страшен не сам retry, а уверенность, что «ну у нас-то всё обработается ровно один раз». Не обработается. И рынок уже не раз платил за эту иллюзию.
Market Tribe
@MarketTribePro
Kafka умеет больно кусаться, если не смотреть на retry внимательно.
Этот пост опубликован в Telegram-канале Market Tribe. Подписаться можно по ссылке: @MarketTribePro.