Idempotency, and Why Retries Need It
A network can't tell a client whether its request failed or only its reply did. Idempotent operations make that ambiguity safe to retry through.
Computation spread across machines that fail independently and talk over unreliable networks.
A network can't tell a client whether its request failed or only its reply did. Idempotent operations make that ambiguity safe to retry through.
Over a network, a client that times out cannot know what happened. So it will retry — and the system must be built to survive that.
Adjust an exponential backoff schedule and watch what happens when two dozen clients retry at once — with and without randomness.