What a system promises about each record.
WHAT AT-MOST-ONCE MEANS
Each record processed zero or one times. Records may be lost.
WHAT AT-LEAST-ONCE MEANS
Each record processed one or more times. Records may be duplicated.
WHAT EXACTLY-ONCE MEANS
Each record's effect applied once.
WHAT IT ACTUALLY REQUIRES
Coordination between the source, the processing and the destination.
WHY IT IS FREQUENTLY MISUNDERSTOOD
It refers to the effect, not the delivery. Records may still be delivered twice.
WHAT THE PRACTICAL APPROACH IS
At-least-once delivery, with idempotent processing.
WHAT IDEMPOTENT MEANS HERE
Processing the same record twice produces the same result as once.
HOW THAT IS ACHIEVED
A deterministic identifier per record Destinations that replace rather than append
WHY THAT IS PREFERABLE
It is simpler, and works across systems that do not coordinate.
WHAT COMMITTING OFFSETS TOO EARLY CAUSES
Records lost on failure.
WHAT COMMITTING TOO LATE CAUSES
Records reprocessed on failure.
WHAT TO CHOOSE
Late, with idempotence.
WHY
Duplication is recoverable; loss is not.