Modern applications rely heavily on APIs. But networks are unreliable - requests fail, time out, or get retried.

Now imagine this scenario:


User clicks “Pay Now”

Request sent to server
Payment processed successfully
But response is lost due to network issue
Client retries the request


💥 Payment gets processed again. User is charged...