Idempotency betekent dat een operatie meerdere keren uitvoeren hetzelfde effect heeft als hem één keer uitvoeren. Het is belangrijk omdat netwerken onbetrouwbaar zijn: wanneer een client een request stuurt en de response nooit aankomt, kan hij niet weten of de server hem heeft verwerkt. Als hij opnieuw probeert, kan een niet-idempotente operatie twee keer draaien.
Het probleem
Client ──POST /payments {$100}──▶ Server (charges $100 ✓)
Client ◀────────X (timeout)────── Server (response lost)
Client ──POST /payments {$100}──▶ Server (charges $100 AGAIN ✗ → $200!)
