Idempotency
The property that makes retries safe. Keys, storage, scope and expiry — and the difference between a queue delivering once and your business logic acting once.
Doing the same thing twice must produce the same result as doing it once — because in a network, twice is not optional.
A client-generated identifier that is stable across retries of one intent and unique across different intents.
Client sends a key, the server claims it atomically, and the outcome is either process-and-store or return-the-stored-result.
Where keys live, how long they last, what scopes them, what is stored against them — and the atomic insert that makes concurrent use safe.
Queues can guarantee a message is delivered at least once; only your consumer can guarantee the business effect happens once.
Recognising that this work has already been done — atomically, at the right scope, within a bounded window.