Что такое Идемпотентный consumer?

Ответ

processed_events(event_id UUID PK). INSERT ON CONFLICT DO NOTHING. В транзакции с бизнес-логикой. Или upsert по бизнес-ключу.

Разбор: Идемпотентный consumer гарантирует, что повторная доставка одного и того же сообщения не приведёт к повторному эффекту: обычно через таблицу processed_events с PK по event_id и INSERT ON CONFLICT DO NOTHING в одной транзакции с бизнес-логикой, либо upsert по бизнес-ключу. Ловушки: Kafka сама не дедуплицирует по смыслу события (offset-дедупликация и at-least-once не спасают от логических дублей), ранний commit ведёт к потере сообщений, а один лишь уровень изоляции не делает обработку идемпотентной.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться