Plattform zur Optimierung von Lieferrouten
Drei NestJS-Microservices, die Events über RabbitMQ austauschen, eine heuristische Routen-Engine auf realen Straßendistanzen, Live-Tracking der Fahrer und drei Client-Apps.
01 · Kontext
Ein Lieferdienst für die letzte Meile muss drei Gruppen koordinieren: Partner, die Aufträge anlegen, Admins, die sie disponieren, und Fahrer auf der Straße. Entstanden als Abschlussprojekt meines Ingenieurstudiums bei Dundill.
02 · Herausforderung
Aus einer Liste von Paketen für jeden Fahrer eine effiziente Route machen, alle Beteiligten in Echtzeit informieren und das System wartbar halten, während der Funktionsumfang wächst.
03 · Architektur
- Drei NestJS-Services (Users, Orders, Notifications), jeder mit eigenen MongoDB-Daten und eigener GraphQL-API.
- RabbitMQ-Topic-Exchanges transportieren Domain-Events zwischen den Services (Benutzeränderungen, Statusupdates von Paketen).
- Ein WebSocket-Gateway überträgt Fahrerpositionen in Echtzeit an das Backoffice.
- Benachrichtigungen werden per E-Mail und über GraphQL-Subscriptions zugestellt.
- Clients: ein React-Backoffice, ein React-Partner-Dashboard und eine React-Native-App (Expo) für Fahrer.
04 · Wichtige Entscheidungen
Events statt direkter Aufrufe
Zustandsänderungen laufen als asynchrone Events, sodass ein langsamer Benachrichtigungsdienst nie einen Auftrag blockiert.
Nichts geht verloren
Eine Dead-Letter-Queue und automatischer Reconnect bewahren fehlgeschlagene Nachrichten, statt sie zu verwerfen.
Routing auf echten Straßen
Die Stopps werden per Nearest-Neighbour-Konstruktion mit anschließender 2-opt-Verbesserung auf realen Straßendistanzen geordnet – mit einem Fallback-Routing-Anbieter, damit die Optimierung weiterläuft, wenn einer ausfällt.
Sicherheit an der Domänengrenze
Sechs Rollen, durchgesetzt von JWT-Guards im Identity-Service; die übrigen Services prüfen Tokens über ihn.
05 · Ergebnis
Eine durchgängig funktionierende Plattform über sechs Codebasen: Fahrer erhalten einen optimierten Tourenplan, Admins verfolgen die Fahrer live und Partner bekommen Statusupdates in Echtzeit. Architektur-Walkthrough auf Anfrage.