Wiederholen, ohne einen Vorgang doppelt auszuführen

Meta

Neuigkeit
Kompetenzen

Ein Timeout bedeutet zunächst, dass eine Antwort nicht rechtzeitig angekommen ist. Der Empfänger kann den Auftrag trotzdem bereits übernommen haben. Eine blinde Wiederholung kann deshalb doppelte Datensätze oder doppelte fachliche Aktionen auslösen.

Wiederholungen fachlich identifizierbar machen

  • Für einen logischen Auftrag eine stabile Kennung vergeben.
  • Dieselbe Kennung bei einer technischen Wiederholung erneut verwenden.
  • Bereits abgeschlossene Verarbeitungsschritte nachvollziehbar speichern.
  • Konflikte melden, wenn unter derselben Kennung andere Daten eintreffen.

Die Kennung muss zum Geschäftsvorgang passen. Eine neue technische HTTP-Anfrage ist nicht automatisch ein neuer Auftrag. Umgekehrt darf ein tatsächlich neuer Vorgang nicht versehentlich als Wiederholung eines alten verworfen werden.

Ein aussagekräftiger Integrationstest unterbricht die Antwort nach erfolgreicher Verarbeitung und sendet den Auftrag erneut. Anschließend wird im Zielsystem geprüft, ob genau das beabsichtigte fachliche Ergebnis vorliegt. Die Abstimmung mit dem empfangenden System ist dabei ebenso wichtig wie die eigene Wiederholungslogik.