Problem statement
Design a service that returns an estimated time of arrival for an origin→destination trip (or an explicit route) reflecting live traffic, at the read scale of a navigation and dispatch product. The ETA blends live per-segment speeds with historical speed profiles.
Operating context. The service sits behind navigation apps and a dispatch system that both need fresh ETAs constantly. A routing engine already exists that can turn an origin and destination into an ordered list of road segments; your job is to time that path under current conditions, not to find it. The road network is a graph of roughly 100 million segments with a live-speed layer refreshed every 30-60 seconds from probe vehicles and sensors. Reads dominate writes by orders of magnitude.
Out of scope. The routing algorithm and turn-by-turn generation, the traffic-sensor hardware, the internals of any ML travel-time model's training, and map-tile rendering. Assume a routing engine and a trained model are available as dependencies.
What to produce. A high-level architecture covering: how live per-segment speeds are ingested, aggregated, and stored alongside historical profiles; how a single ETA is computed from a route (segment traversal plus a model correction); the caching strategy for hot corridors and repeated queries; how the road graph and speed layer are geographically partitioned and how a cross-region route is timed; the freshness-versus-latency trade-off; and how the service degrades when the live layer is unavailable. Sketch the components and the flow of one ETA request; we will probe specifics in checkpoints.
Requirements
This assessment is a Premium feature.
The statement above is free to read. The functional and non-functional requirements, and the graded canvas that scores your design against them, come with Premium.
Topics
- System Design HLD
- Geo Routing
- Geo Traffic
- Data Cache
- Scaling Read-Heavy