Wait, then try again

A shop asks a payment service to charge a customer. If the reply takes too long, the shop stops waiting (timeout). It may try again (retry).

To avoid overload, exponential backoff makes each pause longer, often doubling it. Jitter adds a random delay so apps do not retry together.

Avoid duplicate actions

A timed-out charge may have succeeded even if the reply was lost. Repeating it could charge the customer twice; idempotency helps prevent this. Too many retries can worsen an outage, so teams set a limit and tell customers if the result is uncertain.