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.