8 ms·
"At least once", "at most once" and "exactly once" are fairly well established terms in this area. Idempotency is a restriction/requirement that you may put in
by bluejekyll 9y ago
"At least once", "at most once" and "exactly once" are fairly well established terms in this area.
Idempotency is a restriction/requirement that you may put in place in a distributed system to make the above types of guarantees. Deduping of messages like the article mentions means that it is using "at least once" message delivery, with some notion of unique message IDs and/or messages to then dedup the message.
TCP is a great analogy, where the Windows of the protocol are effectively maintained by Kafka. Anyway, "exactly once" is very hard and requires putting limits into the system such that deduping or something similar is possible. But I'd agree that in all cases anything that claims "exactly once" behavior is in fact implementing that on top of protocols with "at least once" primitives.