Traffic Cameras

Traffic Cameras with tile generation, caching, and routing services.

Requirements

Functional Requirements

  • Serve map tiles
  • Compute routes with traffic

Non-functional Requirements

  • Low tile latency
  • Accurate routing ETAs

High-Level Design

  • Tile builder → store → CDN
  • Routing with traffic ingestion

Capacity & Sizing

  • Tile RPS, CDN cache size, routing QPS

Key Components

  • Tile builder, Tile store, Routing service

Architecture

High-level components and data flow

Data Model

Core entities and relationships

  • tiles (z, x, y PK, ts, etag)
  • roads (road_id PK, geom, speed)
  • routes (route_id PK, start, end, cost)

APIs

  • GET /tiles/{z}/{x}/{y}.pbf
  • GET /route?from=..&to=..
  • POST /ingest { data }

Hot Path

  1. GET tile → CDN → origin (on miss)

Caching & TTL

  • Long TTL for tiles; purge changed regions

Scaling

  • Precompute hot tiles
  • Hierarchical caches
  • Parallel route search

Trade-offs

  • Vector tiles size vs detail
  • Realtime traffic vs cost
  • Route optimality vs speed

Failure Modes & Mitigations

  • Stale tiles → invalidation
  • Traffic feed outage → degrade
  • Routing timeouts → fallback heuristics

Observability

  • Tile cache hit
  • Route latency
  • Ingest lag