← Zurück

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.

⌂ Cockpit