Idempotenz bedeutet, dass eine Operation mehrmals auszuführen denselben Effekt hat wie einmal. Es ist wichtig, weil Netzwerke unzuverlässig sind: wenn ein Client einen Request sendet und die Response nie ankommt, kann er nicht wissen, ob der Server ihn verarbeitet hat. Wenn er wiederholt, könnte eine nicht-idempotente Operation zweimal laufen.
Das Problem
Client ──POST /payments {$100}──▶ Server (charges $100 ✓)
Client ◀────────X (timeout)────── Server (response lost)
Client ──POST /payments {$100}──▶ Server (charges $100 AGAIN ✗ → $200!)
, und sind natürlicherweise idempotent, sodass ihr Wiederholen sicher ist. ist es — genau hier entstehen doppelte Abbuchungen und doppelte Orders.
