Zone-local traffic and the cross-zone bill
How production systems pay for the availability they buy by spreading across availability zones, and what breaks when they route the per-gigabyte cross-zone bill away.
Spreading across three availability zones is billed twice: in standing idle capacity, and at a cent per gigabyte for every crossing. This guide reconstructs, from Slack, DoorDash, Grab, Grafana Labs, Uber, Polar Signals and AWS's own design documents, the five-layer stack every zone-affinity implementation assembles, which layer the cost-driven versions leave out, and what the issue trackers show going wrong. A reader finishes able to decide whether to make a given hop zone-local, what to instrument so the optimisation cannot silently switch itself off, and what the recovery path costs.
Microsoft deleted the charge entirely on 21 May 2024, so a whole body of engineering, a product category and three competing Kafka redesigns exist to route around a pricing decision that one of the three major clouds has already reversed.
What you get out of it
- Zone-local routing was published first as a reliability pattern, not a cost feature: AWS's Builders' Library derives it from survival odds, (2/3)^N for N regional hops against a constant 2/3 for zonal ones, and mentions the money once at the end.
- Every published implementation assembles the same five layers, and the cost-driven ones stop at four. The missing layer is the drain, the ability to move all traffic out of a zone in minutes, which Slack budgets at five minutes with 1% granularity and Kubernetes Topology Aware Routing does not have at all.
- The optimisation disables itself silently. Scaling nine replicas to eleven turns [3,3,3] into [4,4,3] and removes every hint, and there is no default alert on the optimisation being off, only on the outcome.
- Same-zone routing distributes by endpoint count, not by load. Envoy's maintainers state it plainly in their own 2026 proposal: it 'has no visibility into actual backend load'. Grab needed extra brokers in the zone their consumers happened to cluster in.
- The headline cloud outages in this corpus were regional, not zonal, so multi-AZ bought nothing against them. Uber measured the event it was provisioning against at 0.23% of the year and cut standing capacity from 2x to 1.3x on the strength of it.
Scope
Why this, now. Three things converged inside fifteen months: Kubernetes renamed and re-scoped its zone-routing option, Kafka is choosing between three competing redesigns whose stated motivation is this one line item, and AWS lost a single availability zone in us-east-1 to a thermal event on 7 May 2026.
What it does not cover. Cross-region traffic and multi-region disaster recovery, internet egress and CDN economics, quorum and replica placement for consensus latency, data residency constraints, and on-premises rack topology.
Other field guides
The proxy beside every process: when the sidecar's bill came due
Reconstructs the cost of putting a proxy beside every workload from the teams that measured it: Istio's own versioned benchmarks, the MeshInsight stu…
29 sources · 26 organisations · 3 postmortemsThe compute you reserve but never use
Most containers use less than half of what they reserve, and the bill follows the reservation. This guide reconstructs the request/limit contract and…
23 sources · 16 organisations · 3 postmortemsThe discount is a repossession clause
Every large cloud sells the same machines twice: firm capacity at list price and the same capacity at 60-91% off with the right to take it back on 30…
23 sources · 12 organisations · 3 postmortems