system design · system-design
Design Supercharger Network Management
Real-time station availability, load balancing of grid power, reservations, in-car nav integration, dynamic pricing.
Theory
Explanation
Intuition first, formal definition second. Skim the bullets if you already know this; read the prose if you don't.
Each station has N stalls. Cars in transit need to know availability now + estimated availability when they arrive. Grid has limited power; station must throttle when peers compete. Pricing varies by congestion + time-of-day.
Station controller (edge): manages stalls, reports state to cloud every 10s. Cloud aggregates fleet position + ETA + station capacity → predicts congestion. In-car nav consults service when route planned, pre-reserves slot. Grid integration: utility signals demand-response events; station throttles power. Dynamic pricing: congestion → +30% rate. Billing: per-kWh metered, charged to Tesla account.
When to use
EV charging, parking management, any reservation-by-arrival service.
When not to
Always-available facilities (no scarcity).
flowchart LR Stall[(Stall × N)] --> Station[Station Controller] Station -->|10s heartbeat| Cloud[Network Service] Cloud --> State[(Station State Cache)] Car([Vehicle Nav]) --> Plan[Trip Planner] Plan --> Cloud Plan --> Reserve[Reservation Service] Grid[Utility Grid Signal] --> Cloud Cloud -->|throttle command| Station Price[Dynamic Pricing] --> Cloud
Key insights
- Station state at 10s granularity is enough, car arrival times have minute-resolution uncertainty.
- Trip planner predicts station occupancy at arrival, not just current state.
- Grid demand-response can throttle a station to half-power during peak, must propagate to all stalls.
- Reservation soft-holds slot for arriving cars; auto-expires if not arrived.
- Dynamic pricing balances supply + demand without manual intervention.