Kafka ondersteunt verschillende delivery guarantees — at-most-once, at-least-once, en exactly-once — die bepalen of berichten verloren kunnen gaan of dupliceren. Het begrijpen van deze garanties en hoe je ze bereikt, is belangrijk voor het bouwen van betrouwbare systemen.
De drie delivery semantics
AT-MOST-ONCE → messages may be LOST but never duplicated:
→ commit offset BEFORE processing → if processing fails, the message is skipped (lost)
→ for: when occasional loss is acceptable and duplicates are not (rare)
AT-LEAST-ONCE → messages are never lost but may be DUPLICATED:
→ commit offset AFTER processing → if a crash occurs before commit, the message is
reprocessed (duplicate) → requires IDEMPOTENT processing
→ the common default; safe (no loss) but handle duplicates
EXACTLY-ONCE → each message is processed exactly once (no loss, no duplicates):
→ the strongest, but hardest; requires Kafka transactions + idempotent producers
