Design an Air Traffic Control System — Medium System Design Problem
Back to problemsMedium SYSTEM DESIGN · Real-time
Design an Air Traffic Control System Radar
Design an air traffic control system that tracks flights, manages airspace, and ensures safe separations. The system must ingest radar data in real-time, detect potential conflicts, and alert controllers with sub-second latency.
Ingest real-time position data from radar stations and transponders Track all aircraft positions and flight plans on a live map Detect potential separation violations and alert controllers Manage runway assignments for takeoff and landing sequencing Log all flight movements for regulatory compliance
Radar Ingestion — receives position reports from radar stations and ADS-B Flight Tracker — maintains real-time aircraft state and projected paths Conflict Detector — checks separation minima and raises alerts Controller Console — displays live traffic and receives alerts via WebSocket Flight Log — immutable time-series store of all movements 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 Air Traffic Control System Distributed Tracing (APM) — end-to-end request correlation across all services for latency percentile tracking, dependency mapping, and SLO alerting
POST /radar/positions — ingest radar position report GET /flights/active — list all active flights in sector GET /flights/{id}/track — get flight path history WS /atc/console — real-time controller feed GET /conflicts/active — list active separation alerts
Position update processing within 500ms of radar sweep Conflict detection latency under 1 second 99.999% availability — safety-critical system Support 5000+ concurrent aircraft tracks per sector Full audit trail with immutable event logging
Radar stations send position updates to the ingestion endpoint
Ingestion service normalizes data and publishes to event stream
Flight Tracker consumes updates and maintains current aircraft state
Conflict Detector continuously checks separation between tracked aircraft
Alerts are pushed to controller consoles via WebSocket in real-time
All position updates are persisted to time-series DB for audit