Architecture Decisions - Locking, Isolation & Deadlocks
ADR-001: JDK-only Simulation statt echter Datenbank
Entscheidung: Dieses Lab nutzt keine externe Datenbank, sondern kleine deterministische Tabellenklassen.
Begründung: Der Lernwert liegt in Lost Update, Version Check, Isolation und Deadlock. Eine echte DB würde Setup, Dialekte und Infrastruktur einführen, bevor die Kernmechanik verstanden ist.
ADR-002: Fachliche Ablehnung als Result Type
Inventory unavailable wird als
ReservationResult.Rejected zurückgegeben. Optimistische
Konflikte können nach Reload zu einer fachlichen Ablehnung werden.
ADR-003: Keine externen API-Aufrufe im Lock
Das pessimistische Beispiel hält Locks nur während Bestandsprüfung und Bestandsänderung. Payment, E-Mail oder Broker-Versand gehören nicht in diese kritische Sektion.