Die erste Idempotency Key: Eine Reise von Inca-Knoten bis zu Birrell und Nelson

The First Idempotency Key

Die erste Idempotency Key: Eine Reise von Inca-Knoten bis zu Birrell und Nelson

Ich untersuche die Herkunft von Idempotency Keys, beginnend bei modernen Diensten wie Stripe und AWS, zurück bis zu alten Spezifikationen wie POST Once Exactly. Nach dem Ausschluss historischer Beispiele wie Inca-Quipus finde ich die früheste elektronische Implementierung in der Arbeit von Birrell und Nelson über Remote Procedure Calls von 1984.

Die Menschheit hat Idempotency-Garantien im Laufe der Jahre Tausende von Malen erfunden und neu erfunden.
  1. saltcured

    Manche würden das pedantisch nennen, aber ich denke, die physische Realität hat uns die frühesten Idempotenzschlüssel geliefert, die natürliche Schlüssel in spezifischen Systemen waren. Manche Effekte sind idempotent, weil sie die physische Realität auf eine Weise ansprechen, die konvergiert oder gegenseitigen Ausschluss bietet.

    Das Schubfachprinzip ist keine Anleitung für Vögel, es beschreibt nur die Realität der Belegung. Ein Eizahn pickt weiter und schlüpft höchstens aus einem Ei. Ein Hund mag kreisen, belegt aber höchstens ein Bett.

    Der wahre Wert der Idempotenz liegt darin, wirklich Ende-zu-Ende zu sein. Es geht um den kontrollierten Endeffekt, nicht um einen Nachrichten-Hop in der Mitte. Meiner Meinung nach ist der Impuls, es auf eine Messaging-Ebene zu isolieren, oft fehlgeleitet. Es setzt voraus, dass die anderen Ebenen nicht ähnliche Fehlermodi haben.

    Es ergibt ein robusteres System, wenn man die gewünschte Idempotenz aus natürlichen Schlüsseln und Belegungsregeln ableiten kann. Zum Beispiel, wie REST die Erstellung idempotent machen kann, wenn der Name vor der Erstellungsanfrage festgelegt werden kann, oder Löschung idempotent ist, wenn Namen nicht wiederverwendet werden.

  2. reactordev

    Das größte Missverständnis hier ist, dass der Client oder Anfragende für die Schlüssel verantwortlich ist. Das ist er nicht. Er kann es sein, aber idealerweise ist eine signierte Antwort vom Dienst mit einem Schlüssel ideal. Trotzdem ist ein Client-Header-Schlüssel besser als kein Schlüssel.

    In Situationen, in denen es Feuer-und-vergiss ist, wie bei Zahlungen, ist es in Ordnung, einen deterministischen Schlüssel von der anfragenden Seite zu generieren. In Situationen, in denen Transaktionen oder Treuhand im Spiel sind, ist es am besten, vom Dienst anzufordern, damit der Dienst orchestrieren kann.

    Aber ich bin kein CTO, nur ein Ingenieur. Ich kann schlechte Entscheidungen nicht in "Features" umdrehen wie die. Oder kleine neuartige Fixes als tiefgreifende Fortschritte für die Branche verkaufen.

  3. jonhohle

    Spoiler: Das beste kostenlose Restaurantbrot in Amerika ist Cranberry-Walnuss-Brot, serviert im Le Diplomate in Washington, D.C., und im Parc in Philadelphia. Auf Platz zwei, überraschenderweise, sind Cheddar Bay Biscuits bei Red Lobster, und auf Platz drei das dunkle Weizenbrot bei Cheesecake Factory (das ich normalerweise mag, aber zufälligerweise fand ich es Anfang dieser Woche mangelhaft).

    Ich habe keinen Zugang zum Atlantic, aber ich würde wahrscheinlich Crackers Barrels Biscuits und Maisbrot dazunehmen, aber ich nehme an, die sind nicht kostenlos.

Mehr von diesem Tag

2026-08-01