Design an Airport Baggage Handling System — Medium System Design Problem
Back to problemsMedium SYSTEM DESIGN · Transport
Design an Airport Baggage Handling System Conveyor
Design an airport baggage handling system that tracks and routes luggage from check-in to aircraft. The system must handle barcode scanning events, compute optimal conveyor routes, and provide real-time tracking for operations staff.
Track baggage from check-in through security screening to aircraft loading Route bags through conveyor network to correct flight gate Handle connecting flight transfers with tight timing windows Alert operations staff for misrouted or delayed bags Provide passenger-facing bag tracking status
Scan Ingestion — receives barcode/RFID scan events from conveyor checkpoints Baggage API — serves tracking data to operations dashboards and passengers Routing Engine — computes optimal conveyor path to destination gate Event Stream — durable ordered log of all scan and routing events Alert Service — notifies staff of misrouted, stuck, or late bags Monitoring / Logs for observability across all services Rate Limiter to throttle abusive or runaway clients Auth Service for token validation and session authentication Dead Letter Queue (DLQ) for failed message retry and inspection CDN (CloudFront) for edge caching of static assets Cache for frequently accessed data and reduced database load Load Balancer for distributing traffic across service instances HA/DR Strategy — multi-AZ deployment with automated database failover, cross-AZ synchronous replication, regular backup snapshots, and defined RTO/RPO targets Service Mesh (Sidecar Proxy) — mTLS between all services, zero-trust enforcement, and fine-grained traffic control for an Airport Baggage Handling System Distributed Tracing (APM) — end-to-end request correlation across all services for latency percentile tracking, dependency mapping, and SLO alerting
POST /scans — ingest a barcode/RFID scan event GET /bags/{tagId}/status — current bag location and status GET /bags/{tagId}/history — full scan history for a bag GET /flights/{id}/bags — all bags assigned to a flight GET /alerts/active — active misroute and delay alerts
Scan event processing within 500ms Route computation for a bag within 200ms Support 50K+ bags per hour at large hub airports 99.99% successful bag-to-flight matching Full audit trail of every scan point per bag
Bag is tagged and scanned at check-in counter
Scan event is published to the event stream with bag ID and flight info
Routing Engine assigns the bag an optimal path through the conveyor network
At each conveyor junction, scanner reads tag and confirms routing
If bag deviates from route, Alert Service notifies operations
Final scan at aircraft confirms bag is loaded; status updated for passenger