Thirty-four artefacts across twenty-two hosts, graded. The full ledger,
with one row per claim and the copied quote behind each, ships beside this page as
sources.md.
Postmortem
Slack2023-08
Slack's Migration to a Cellular Architecture
The fullest public account of a zone gray failure and the architecture built in
response. Names the mechanism (an intermittently faulting inter-AZ link), the amplifier
(hundreds of RPCs per user request, all of which must succeed) and the fix (siloing plus
a five-minute drain at 1% granularity).
Carry forwardSiloing contains; only the drain ends the incident. Give the drain a time budget and rehearse it.
slack.engineering/slacks-migration-to-a-cellular-architecture/
Postmortem
AWS2025-10
Summary of the DynamoDB Service Disruption in US-EAST-1
A latent race condition between two DNS enactors left the regional DynamoDB endpoint
with an empty record. Fourteen hours of cascading impact across EC2 launches, NLB and
every dependent service, all of it regional in scope.
Carry forwardThe headline cloud outages in this corpus were regional. Zone spreading is insurance against a narrower event than most budgets assume.
aws.amazon.com/message/101925
Postmortem
Broadcom2026-05
Availability Zone (use1-az4) Impacted
The downstream view of AWS's May 2026 thermal event. What broke for VMware Cloud on AWS
was not running instances but the ability to provision: no new hosts, no new SDDCs, and
auto-remediation for host failures stopped working. Open 02:02 UTC 8 May to 00:49 UTC
10 May.
Carry forwardA zone event removes the control plane you were counting on to recover from it. This is the concrete case for pre-provisioning.
status.broadcom.com/notices/xxpqglmvmv4dab7q-availability-zone-use1-az4-impacted
Postmortem
Network World2026-05
AWS hit by US-East-1 outage after data center thermal event
Press reporting, quoting AWS's Health Dashboard verbatim on the 7 May 2026 cooling
failure in use1-az4. Useful as the dated record of AWS's own words, since no formal
post-event summary was published for this one at the time of checking.
Carry forwardSingle-zone physical failure is still a live event class in 2026, and it lasted roughly 20 hours.
networkworld.com/article/4168878/
Source
Envoy2023-07
Issue #28419: zone-aware LB mishandles mismatched localities
Three defects in one report: the feature silently on for some proxies and off for
others, a residual-weight miscalculation sending 5× traffic to one of two
equivalent zones, and an off-by-one in threshold sampling. Closed via PR #28970.
Carry forwardVerify the per-zone split empirically after enabling affinity and after any replica-count change on either side.
github.com/envoyproxy/envoy/issues/28419
Source
Envoy2026-02
Issue #43665: ORCA-driven locality routing proposal
The project stating its own limitation plainly: zone-aware routing "has no visibility
into actual backend load", and "least-request helps within a zone but can't redistribute
across zones". The proposal is to feed per-zone utilisation back into the split.
Carry forwardEndpoint-count-based affinity cannot detect a slow zone. If you need that, you need load reporting, and as of 2026 it is still being added.
github.com/envoyproxy/envoy/issues/43665
Source
Kubernetes2023-12
Issue #122437: hints removed when scaling 9 to 11 replicas
A [3,3,3] spread gets hints, a [4,4,3] spread loses them, because the controller
computes a negative remaining-minimum. Reported on v1.27.6 on AWS. The optimisation
disables itself during a routine scale-up with no signal to the operator.
Carry forwardEmit and alert on whether hints are currently applied, per service. Nothing does this by default.
github.com/kubernetes/kubernetes/issues/122437
Source
Kubernetes2023-10
Issue #121516: OverloadThreshold should be configurable per Service
Three Loki pods across three availability zones cannot get hints under the hardcoded
0.2 threshold, even though one pod could carry the whole load. Raised October 2023,
closed as completed April 2024.
Carry forwardThe eligibility rule is about proportional capacity, not about whether same-zone routing would work. Small services are excluded by construction.
github.com/kubernetes/kubernetes/issues/121516
Source
Kubernetes2021-07
PR #103924: traffic policy and topology-aware routing should not be exclusive
The rejected approach. An attempt to let node-local traffic policy and zone-aware
routing coexist on the same Service, opened July 2021, closed unmerged in January 2022.
The two features remain mutually exclusive in the documentation today.
Carry forwardIf you need both node-locality and zone-locality, Kubernetes will not give them to you together. That constraint is five years old and still binding.
github.com/kubernetes/kubernetes/pull/103924
Source
Apache Kafka2025-06
KAFKA-19387: rack awareness in Range and Uniform assignors
Rack-aware balancing has not yet landed for the newer consumer group protocol's default
assignors. Opened 7 June 2025, still In Progress with no fix version. Four sub-tasks
covering homogeneous and heterogeneous assignment.
Carry forwardA protocol upgrade can revoke a cost optimisation configured under the previous one. Re-verify after every version bump, with a metric.
issues.apache.org/jira/browse/KAFKA-19387
ADR
Apache Kafka2019
KIP-392: Allow consumers to fetch from closest replica
The decision record that started the practice, and it is explicit about motive:
consumers could only fetch from the leader, "so there is no easy way to leverage
locality in order to reduce expensive cross-dc traffic", in a deployment where "each
availability zone is treated as a datacenter". Documents the correctness work required:
high-watermark propagation, out-of-range offset handling, and a new error code.
Carry forwardReading from a follower is not free correctness. It buys cost with latency and with "spurious out of range errors" on out-of-sync replicas.
cwiki.apache.org/confluence/display/KAFKA/KIP-392
ADR
Apache Kafka2022
KIP-881: Rack-aware Partition Assignment for Kafka Consumers
The second route to the same outcome: rather than redirecting the fetch, align the
assignment so the consumer's partitions already live in its zone. Propagates
client.rack to the assignor.
Carry forwardTwo mechanisms, one goal, different failure modes. Assignment alignment avoids the follower-fetch latency penalty but constrains the assignor.
cwiki.apache.org/confluence/spaces/KAFKA/pages/231118120/
ADR
Apache Kafka2025-05
KIP-1183: Unified Shared Storage
One of three competing proposals to remove cross-zone replication from Kafka
altogether by putting the log on object storage. Notes that "the community has made
significant efforts to reduce cross-AZ traffic" already, and that with shared storage
"data replication is unnecessary". Still Under Discussion.
Carry forwardThe line item is now large enough to be reopening the storage design of a mature system. Watch which proposal wins before committing.
cwiki.apache.org/confluence/display/KAFKA/KIP-1183
ADR
Kubernetes2021-02
KEP-2433: Topology Aware Hints
Where the hardcoded thresholds come from, and why: a 30% maximum acceptable overload,
hints only added below 20% expected overload, the 10-point gap existing to stop
flapping. The risks section anticipates the single-zone-traffic case exactly. At GA in
1.33 only the hints field graduated.
Carry forwardThe KEP predicted the overload risk and the mitigation it offers is "deploy separately per zone", which is a different architecture, not a setting.
github.com/kubernetes/enhancements/.../2433-topology-aware-hints
ADR
Kubernetes2025
KEP-3015: PreferSameZone and PreferSameNode
A project renaming its own feature because the first name overpromised. Extending
PreferClose to cover node locality "would inevitably have either too many
false positives or too many false negatives", so the KEP deprecates it and replaces it
with a name that says what it does.
Carry forward"Close" is not a property a routing layer can evaluate. Zone and node are. Prefer configuration that names the topology level explicitly.
github.com/kubernetes/enhancements/.../3015-prefer-same-node
Paper
Microsoft Research2017-05
Gray Failure: The Achilles' Heel of Cloud-Scale Systems, HotOS '17
Defines differential observability, the property that makes a degraded zone invisible
to the thing responsible for removing it. Section 2.1, "High redundancy hurts", is the
direct argument against assuming that spreading across zones is by itself protective.
Carry forwardDesign the zone-health signal from the caller's perspective, not the endpoint's. A readiness probe and a real request take different paths.
microsoft.com/en-us/research/wp-content/uploads/2017/06/paper-1.pdf
Paper
Uber, UBC2026-03
Uber's Failover Architecture, arXiv:2603.07345
The same trade one level up: standing redundancy against a rare event. Four years of
data showed full-peak failovers averaging under 20 hours a year. Uber moved from 2×
to 1.3× provisioning, lifted utilisation from 20% to 30%, and released about a
million CPU cores from a four-million-core baseline, after hardening over 4,000 unsafe
dependencies.
Carry forwardMeasure how often the event you are provisioning against actually happens, then decide. Uber found the answer was 0.23% of the year.
arxiv.org/pdf/2603.07345
Eng blog
Buoyant2024-06
The trouble with Topology Aware Routing
The clearest statement of the counter-case, with a demonstration: with TAR enabled and
one zone's backends failing, that zone drops to a 0% success rate while healthy pods sit
idle elsewhere. Also carries the published unit prices, $20/TB on AWS and $10.24/TB on
Google Cloud.
Carry forwardRun this experiment on your own cluster before enabling zone-local routing. It takes an afternoon and it is the only thing that tells you your spill path exists.
buoyant.io/blog/the-trouble-with-topology-aware-routing...
Eng blog
Grab2023-07
Zero traffic cost for Kafka consumers
The most complete numbers in the corpus for what follower fetching actually costs and
returns: a 25% cut in cross-AZ traffic after three months, up to 500 ms added at p99,
visible consumer skew from March 2023, and the loss of graceful broker isolation during
maintenance.
Carry forwardBudget for extra brokers in the zone your consumers happen to cluster in. Affinity moves load distribution to a variable you do not control.
engineering.grab.com/zero-traffic-cost
Eng blog
Grafana Labs2025-02
The next generation of Grafana Mimir
An architecture changed by a pricing line. Multi-AZ was already possible in the old
design, but "the cross-availability zone data transfer charges it incurred made this
cost-prohibitive to do on a large scale", so the write path was rebuilt on a
Kafka-compatible log over object storage. Load tested at 1.5 GiB/s compressed writes
with 4× fan-out.
Carry forwardWhen the crossing cannot be routed around, the remaining move is to relocate durability into a store that is already regional.
grafana.com/blog/the-next-generation-of-grafana-mimir...
Eng blog
Jack Vanlightly2025-10
A Fork in the Road: Deciding Kafka's Diskless Future
An independent read of three simultaneous KIPs aimed at the same cost. Quotes Luke Chen
on "three KIPs simultaneously addressing the same challenge of high replication costs
when running Kafka across multiple cloud availability zones", and warns against the
narrow framing: "it's a mistake to think of S3 simply as a cheaper disk or a networking
cheat".
Carry forwardThe cost framing understates what changes. Object-storage logs alter elasticity and operations too, and those may matter more than the bill.
jack-vanlightly.com/blog/2025/10/22/a-fork-in-the-road...
Eng blog
InfoQ2024-06
Microsoft Drops Data Transfer Fees between Availability Zones
The record of the pricing change and Microsoft's stated reason: removing the charge
"encourages the use of highly available and fault-tolerant system architectures without
additional fees". Includes the comparison to AWS at $0.01/GB per direction.
Carry forwardAny architecture whose only justification is this charge is an architecture with a repricing risk. Check whether your mechanism also buys reliability.
infoq.com/news/2024/06/azure-az-transfer-fees/
Case study
DoorDash2024-01
DoorDash uses a service mesh to manage data transfer and cloud spend
Zone awareness carried in the mesh control plane, with each node's availability zone
placed into endpoint discovery responses. The outcome, in the engineers' own words: the
saving "caused our cloud provider to reach out to us asking whether we were experiencing
a production-related incident".
Carry forwardDoing this at L7 keeps the health-driven spill path that endpoint filtering gives up. If you already run a mesh, that is the cheaper place to do it.
infoq.com/news/2024/01/doordash-service-mesh
Case study
Polar Signals2025-01
Using eBPF to monitor cross-zone traffic, cutting those costs by 50%
Attribution before optimisation. Cross-zone traffic was nearly half their cloud bill in
mid-2024, and the cloud invoice does not say which service produced it, so they built
kubezonnet to trace packets and expose per-flow Prometheus metrics.
Carry forwardYou cannot prioritise this work from the invoice. Per-service cross-zone byte attribution is the prerequisite, and it is a build, not a setting.
ebpf.foundation/case-study-polar-signals-uses-ebpf...
Talk
SignalFx, Kafka Summit SF2019
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka
Uday Sagar Siramshetty's session, from the same year as KIP-392. The framing has not
changed in seven years: clouds allow free transfer inside a zone and bill for movement
between them, so the architecture is bent to produce and consume within one zone. Also
covers compression during replication.
Carry forwardThe 50% figure predates every mechanism now sold as the solution. Compression on the replication path is the option most teams still forget.
confluent.io/kafka-summit-san-francisco-2019/achieving-a-50-reduction...
Talk
KubeFM2025-01
Topology-aware routing: balancing cost savings and reliability
William Morgan of Buoyant, in conversation, seven months after the written critique.
Useful for hearing the trade-off argued rather than asserted, and for the point that the
Kubernetes safeguards protect against imbalance rather than against a degraded zone.
Carry forwardThe disagreement is still live in the practitioner channel a year after the feature shipped broadly. Do not treat either side as settled.
kube.fm/topology-aware-routing-william
Vendor
AWS2019
Static stability using Availability Zones, Amazon Builders' Library
Becky Weiss and Mike Furr. The origin of the reliability argument for zone-local
traffic, with the arithmetic: (2/3)^N for N regional hops against a
constant 2/3 for zonal ones. Also the capacity price, "when we use three
Availability Zones, we overprovision by 50 percent", and the explicit rejection of
reactive scaling.
Carry forwardThe reliability case only holds for a fully zonal path. One zone-local hop in a regional chain moves the exponent by one and little else.
d1.awsstatic.com/builderslibrary/pdfs/static-stability-using-availability-zones.pdf
Vendor
Kubernetes2026-08
Topology Aware Routing (documentation)
The five conditions under which hints are not applied, including fewer endpoints than
zones, missing zone labels, and the careful partial-state rule: filtering in that state
"would be dangerous so the kube-proxy falls back to using all endpoints". Also states
the feature "does not work well" when traffic originates mostly from one zone.
Carry forwardRead this page as a list of the ways the optimisation turns itself off, and instrument each one.
kubernetes.io/docs/concepts/services-networking/topology-aware-routing/
Vendor
Envoy2026-08
Zone aware routing (documentation)
The preconditions, of which the first is that neither cluster is in panic mode, panic
being the state below 50% healthy hosts where Envoy ignores health entirely. Documents
the residual-capacity split when the local zone cannot serve, and that zone-aware
routing applies only at priority zero.
Carry forwardEnvoy's affinity is conditional on health by construction, which is the property endpoint-list filtering lacks. That is the substantive difference between the two approaches.
envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/zone_aware
Vendor
Confluent2023-04
Uncovering Kafka's Hidden Infrastructure Costs
Addison Huddy's decomposition of where cross-zone bytes come from in a replicated log:
producers reaching a remote leader about two thirds of the time, replication at factor
three adding twice the ingress, consumers reading remotely about two thirds of the time.
Claims networking is over half of Kafka infrastructure cost.
Carry forwardThe decomposition is reusable arithmetic even if you discount the headline share. Apply it to your own replication factor and fan-out.
confluent.io/blog/understanding-and-optimizing-your-kafka-costs-part-1-infrastructure/
Vendor
Confluent2025-02
Confluent Cloud Freight Clusters in GA
The commercial form of the trade, and useful mainly for the latency number the vendor
is willing to publish: from "sub-100ms" in standard clusters to "up to a second or two"
in exchange for removing cross-zone traffic cost. The 90% infrastructure saving is a
claim with no independent measurement.
Carry forwardTreat one to two seconds as the honest price of removing the crossing from a log entirely. If your consumers cannot absorb that, this route is closed.
confluent.io/blog/freight-clusters-are-generally-available/
Vendor
Microsoft Azure2026-08
Bandwidth pricing
The current price, confirmed at the source: transfer within and between availability
zones in the same region is free, as is transfer between Azure services in the same
region. Cross-region charges remain.
Carry forwardIf you are on Azure, most of the engineering in this guide is negative value: you would take on the failure modes and get no saving.
azure.microsoft.com/en-us/pricing/details/bandwidth/
Vendor
AWS2023-05
Exploring the effect of Topology Aware Hints in Amazon EKS
AWS's own walkthrough, and worth noting for what it does not contain: no before and
after percentages, only X-Ray traces showing that each UI pod stops talking to catalog
pods in other zones. Does warn that horizontal pod autoscaling can disrupt zone balance
on scale-in.
Carry forwardEven the cloud vendor's demonstration is qualitative. Nobody has published a measured cross-zone byte reduction for this feature in isolation.
aws.amazon.com/blogs/containers/exploring-the-effect-of-topology-aware-hints...
Vendor
WarpStream2025-02
How WarpStream powers Grafana Labs' redesigned architecture
The supplier's account of the Grafana Mimir redesign, reproduced with permission. Adds
the load-test figures the customer post carries too: 1.5 GiB/s compressed writes through
a single cluster, consumed with 4× fan-out for 7.5 GiB/s aggregate. The "no
inter-AZ networking costs" framing is the vendor's.
Carry forwardUseful as corroboration that a named production system took this route at a stated throughput, not as evidence of the saving, which neither side publishes.
warpstream.com/blog/how-warpstream-powers-grafana-labs-redesigned-architecture