Kafka / микросервисы middle
Что такое Idempotent consumer?
Ответ
Таблица processed_events(event_id UUID PK). INSERT перед обработкой — конфликт → skip. Или upsert по бизнес-ключу (ON CONFLICT DO UPDATE). В транзакции с бизнес-логикой.
Разбор: Идемпотентный consumer защищается от повторной обработки на стороне потребителя: таблица processed_events(event_id PK) с INSERT (или upsert по бизнес-ключу) в той же транзакции, что и бизнес-логика — конфликт по PK означает дубль и приводит к skip. Ловушки: commit offset до обработки теряет at-least-once-гарантии; разнесение SELECT/INSERT и бизнес-логики по разным транзакциям создаёт гонку; enable.idempotence — это про продюсера и не защищает консьюмера от повторной доставки.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.