Transactional Inbox
Eine Transactional Inbox nutzt dauerhafte Nachrichteneinträge, um die lokale Verarbeitung gegen doppelte Zustellungen abzusichern.
Eine Transactional Inbox nutzt dauerhafte Nachrichteneinträge, um die lokale Verarbeitung gegen doppelte Zustellungen abzusichern. Bei der hier beschriebenen Variante werden die Kennzeichnung einer verarbeiteten Nachricht und ihre fachliche Datenbankänderung in derselben Transaktion gespeichert.
Ein fiktiver Dienst mit dem Verbrauchernamen report-worker erhält die Nachricht E-42. Er trägt die Kombination aus Verbraucher und Nachrichten-ID in seine Inbox ein und erhöht einen Berichtszähler von 6 auf 7. Beide Änderungen werden gemeinsam festgeschrieben. Eine Eindeutigkeitsbedingung in der Datenbank für diese Kombination schützt auch bei gleichzeitig arbeitenden Instanzen. Nur vorher nachzusehen und anschließend zu schreiben reicht dafür nicht.
Der Absturzzeitpunkt entscheidet
Scheitert die Transaktion vor dem Commit, bleiben weder der Eintrag noch die Zähleränderung bestehen. Ist der Commit erfolgt, aber die anschließende Broker-Bestätigung geht verloren, kann E-42 erneut eintreffen. Der vorhandene Eintrag verhindert dann eine weitere Erhöhung auf 8. Die Bestätigung an den Broker ist selbst kein Teil dieser lokalen Datenbanktransaktion.
Idempotenz bezeichnet die sichere Wirkung einer Wiederholung; die Inbox ist ein mögliches Umsetzungsmuster. Eine Outbox speichert dagegen ausgehende Nachrichten zusammen mit der lokalen Änderung. Die Inbox garantiert für externe HTTP-Aufrufe oder den Versand von E-Mails nicht automatisch eine genau einmalige Ausführung. Die Aufbewahrung der Nachrichten-IDs muss zum möglichen Wiederholungs- und Replay-Zeitraum passen; zu früh entfernte Einträge verlieren ihren Schutz vor späteren Duplikaten.
Quellen
Verwandte Begriffe
- IdempotenzEine idempotente Operation hat bei identischer Wiederholung dieselbe beabsichtigte Wirkung auf den Zustand wie beim ersten Mal.
- NachrichtenbestätigungEine Nachrichtenbestätigung meldet dem Broker, dass eine Zustellung nach der vereinbarten Regel angenommen oder verarbeitet wurde.
- Retry-JitterRetry-Jitter verteilt Wiederholungsversuche durch zufällig variierte Wartezeiten, damit viele Clients nicht gleichzeitig erneut anfragen.
- TestmandantEin logisch abgegrenzter Kundenbereich einer mandantenfähigen Anwendung, der für Prüfungen eingerichtet ist.
- Webhook-ReplayWebhook-Replay bezeichnet die erneute Übermittlung einer Webhook-Meldung. Gezieltes Nachholen und Angriffe durch Wiederholung brauchen unterschiedliche Prüfungen.
- IdempotenzschlüsselEin Idempotenzschlüssel kennzeichnet Wiederholungen derselben beabsichtigten Anfrage. Geltungsbereich, Speicherdauer und API-Regeln bestimmen seine Wirkung.
Beiträge zum Thema








Schnittstellen & Integration mit ASES
ERP, CRM und Shop sauber verbunden

