A driver marks a delivery as completed, but the dispatcher still sees it as in transit. A carrier webhook retries after a timeout, and the warehouse receives the same shipment update twice. These failures often originate in how a logistics backend processes concurrent requests, retries, and events from external systems.
A Logistics Management System needs more than shipment CRUD endpoints. It must maintain a consistent view of orders, vehicles, drivers, and delivery status while multiple services update the same shipment. This article explores an event-driven design using Node.js, PostgreSQL, and AWS SQS, with practical controls for duplicate events and out-of-order updates. For a broader look at logistics management software and supply chain workflows , the business requirements are closely connected to these engineering decisions.
Context and Setup
A logistics backend typically receives updates from a dispatch application, a driver mobile app, warehouse software, and carrier APIs.…