Architecture Decisions Transaktionen & ACID
ADR-4C1-001: Transaktionsgrenze im Application Service
Der Use Case entscheidet, welche Datenänderungen atomar zusammengehören. Controller, Repository oder Broker-Adapter definieren diese Grenze nicht.
ADR-4C1-002: Keine direkte Broker-Publikation innerhalb der fachlichen DB-Transaktion
Direktes Publizieren erzeugt ein Dual-Write-Risiko. Stattdessen wird eine Outbox-Zeile zusammen mit der Order gespeichert.
ADR-4C1-003: Fachliche Fehler als Result, technische Fehler als Rollback-Auslöser
InventoryUnavailable ist kein technischer Crash. Ein DB-Timeout ist dagegen ein technischer Fehler und muss zur Rollback-/Retry-Strategie führen.