ScenarioProduction Scenarios
You're seeing duplicate messages in your consumer application. How do you identify the source and fix it?
Reference answer
Sources of duplicates: 1) Producer retries without idempotence — fix: enable.idempotence=true. 2) Consumer commits before processing — fix: manual commit after processing. 3) Consumer commits after processing but crashes before commit completes — this is at-least-once behavior, requires idempotent consumer logic. 4) Offset reset to earlier position — check if anyone reset offsets. 5) Network issue causing producer retry after broker already committed. Fix at consumer level: add unique event IDs to messages and track processed IDs in a deduplication store (Redis, DB with upsert). Fix at producer level: enable.idempotence=true for session-level deduplication.
Expected key concepts: enable.idempotence, producer retries, manual commit, at-least-once, idempotent consumer, offset reset, unique event IDs, deduplication store, Redis, upsert, session-level