Wie implementiert man eine 'Available to Promise' (ATP)-Logik in Echtzeit über mehrere physische Lagerstandorte hinweg?

Die Implementierung einer Echtzeit-ATP-Logik erfordert die strikte Trennung von physischem Bestand (On-Hand) und verfügbarem Bestand (Virtual Inventory). Wir lösen dies durch eine Event-Driven Architecture (EDA), bei der jede Bestandsänderung in den physischen Lagern (WMS) als Event über einen Message Broker (z. B. Apache Kafka) an einen zentralen Inventory Service gestreamt wird.

Die Berechnung des ATP-Werts folgt der Formel: ATP = (Physischer Bestand + Geplante Wareneingänge) - (Reservierungen + Offene Bestellungen)

Um Latenzen zu minimieren und Race Conditions bei gleichzeitigem Zugriff auf denselben Artikel über verschiedene Standorte zu verhindern, setzen wir auf einen In-Memory-State-Store. Hierbei werden Bestände nicht in einer relationalen Datenbank gesperrt, sondern mittels atomarer Operationen (z. B. Redis DECR) in Millisekunden reserviert.

Für die Verteilung über mehrere Standorte implementieren wir eine Priorisierungsmatrix. Diese steuert, aus welchem Lager die Ware bezogen wird, basierend auf Kriterien wie Versandkosten, Lieferzeit oder Lagerkapazitäten.

KomponenteFunktionTechnischer Ansatz
State StoreHochperformante BestandsprüfungRedis / In-Memory DB
Event StreamSynchronisation der StandorteKafka / RabbitMQ
Logic LayerATP-Berechnung & RoutingGo- oder Java-Microservice
Data PipelineIntegration von Legacy-WMSData Engineering

Der Prozess der Reservierung erfolgt in zwei Phasen:

  1. Soft Reservation: Der Bestand wird im Cache für einen definierten Zeitraum (z. B. 15 Minuten im Warenkorb) blockiert.
  2. Hard Reservation: Nach Abschluss des Checkouts wird die Reservierung in das Ziel-WMS geschrieben und der ATP-Wert dauerhaft reduziert.

Sollte ein Standort einen Out-of-Stock-Status melden, triggert das System automatisch eine Neu-Berechnung über die verbleibenden Standorte, sofern die Logik eine standortübergreifende Erfüllung zulässt.

Wir empfehlen den Verzicht auf synchrone Datenbank-Abfragen über mehrere physische Standorte hinweg; nur eine asynchrone, event-gesteuerte Architektur mit einem zentralen In-Memory-Cache garantiert die für den modernen E-Commerce notwendige Latenz und Datenkonsistenz.

Sergej Wiens

Sergej Wiens

Gründer & Software Architekt