Idempotenz: die Engineering-Methode gegen Doppelzahlungen
Von Selim Destanci
Gründer
Zahlungs-APIs leben in einer unzuverlässigen Welt: Timeouts, Wiederholungen und ungeduldige Nutzer erzeugen doppelte Anfragen. Ohne Schutz kann eine einzige beabsichtigte Zahlung zweimal ausgeführt werden.
Ein Idempotenzschlüssel ist eine vom Client gelieferte Kennung an einer Anfrage. Der Server speichert das erste Ergebnis für diesen Schlüssel und liefert bei jeder Wiederholung dasselbe Ergebnis — Wiederholungen sind so per Konstruktion sicher.
Das Schwierige ist Nebenläufigkeit. Zwei Anfragen mit gleichem Schlüssel können gleichzeitig eintreffen; ein verteiltes Lock plus ein persistenter Ergebnisspeicher sorgen dafür, dass genau eine Ausführung gewinnt und der Rest das gespeicherte Ergebnis liest.
Gut umgesetzt verwandelt Idempotenz eine fragile Geldoperation in eine sichere, wiederholbare — das Fundament jedes zuverlässigen Zahlungssystems.