7.30Therefore retries require idempotency
This is why these belong together:
TIMEOUT
↓
RETRY
↓
IDEMPOTENT OPERATION
For Salesforce:
CREATE
may be unsafe.
UPSERT using stable External ID
is much safer.
Interview phrase worth memorizing:
“I treat ambiguous failures like timeouts differently from known business failures because a timeout doesn't prove the downstream operation wasn't committed. Retries therefore need idempotent semantics.”
Excellent.