Host & DNS
Host & DNS
@HostDnsPro

Kafka не про «один раз и навсегда». В живой системе сообщение легко может быть обработано повторно — и это не

Kafka не про «один раз и навсегда». В живой системе сообщение легко может быть обработано повторно — и это не баг, а обычный сценарий.

Чёрный кейс из продакшена: consumer успел взять сообщение, сделать часть работы, а потом упал до commit offset. Kafka честно отдаст это сообщение снова. Снаружи это выглядит как дубль, а внутри — как повторный платёж, повторная отправка письма, повторное создание заказа.

Ошибка здесь не в Kafka, а в иллюзии “exactly once” там, где её не обеспечили на уровне приложения. Если обработчик не идемпотентен, любой retry превращается в инцидент.

Что делать:
1. Делать обработку идемпотентной по message id.
2. Хранить статус обработки в БД или кеше с TTL.
3. Разделять «получил сообщение» и «завершил бизнес-операцию».
4. Проверять, что retry не ломает внешние API и почту.

Kafka — это не гарантия от дублей. Это просто быстрый и надёжный способ эти дубли получить, если не заложиться на них заранее ⚙️
Этот пост опубликован в Telegram-канале Host & DNS. Подписаться можно по ссылке: @HostDnsPro.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.