Outbox-Muster
Problem
Ihr Dienst tut:
1. Bestellung speichern
2. Veröffentlichung von OrderCreated
Die Speicherung in der Datenbank gelingt.
Dann stürzt der Prozess vor der Veröffentlichung ab.
Die Bestellung existiert, aber ihr Ereignis wurde nicht veröffentlicht.
Lösung — Transaktions-Outbox
Geschäftliche Änderung und ausgehendes Ereignis werden in derselben Datenbanktransaktion gespeichert.
Transaction:
Bestellung
+
Outbox-Ereignis
↓ später
Publisher → Broker
Kerngedanke: Das Outbox-Muster schließt die Konsistenzlücke zwischen Datenbankänderungen und Nachrichtenveröffentlichung.