Autoscaling: 2 real scaling case studies

2 of the 94 engineering write-ups in our database are tagged with the technique "autoscaling". They come from 2 companies (Netflix and Zalando) and were published in 2026. Stack that shows up most often in these stories: Kubernetes (2). 2 of the 2 state concrete scale numbers, for example "millions of containers launched per week" (Netflix). Each card below links to our short summary and the original post.

Netflix · 2026

Single-tenant Titus: VM-level isolation on a multi-tenant container platform

Titus, Netflix's Kubernetes-based container platform, launches millions of containers a week on tens of thousands of EC2 instances, packing many teams onto shared hosts. cgroups can't fence last-level cache, memory bandwidth or the global lock in HTB network shaping, so a small-packet flood from one container could starve its neighbors, and stateful streaming jobs like Flink would fall behind and need minutes to catch up. After ruling out microVMs (Firecracker, Kata), gVisor and moving teams to plain EC2, Netflix added an allowlisted single-tenant mode: the federation layer tags eligible tasks, the autoscaler launches the smallest instance that fits each one just in time, and anti-affinity, taints, no preemption and no repacking keep it alone on its host, all behind the same Titus API. Flink, streaming connectors and telemetry pipelines now report stable operation, and the shared fleet packs more densely because sensitive workloads no longer need anti-affinity spreading. The cost is slower launches, since every task waits for its own instance, and fixed host overhead that can take tens of percent of a small node.

millions of containers launched per weektens of thousands of EC2 instances across multiple AWS regionsworkload isolationmulti-tenancyautoscalingTitusKubernetesAWS EC2
Zalando · 2026

From Homegrown to Flink: Migrating a Stateful Ad Event Join at Scale

Zalando Marketing Services replaced a 7-year-old homegrown in-memory join that matched Sponsored Products auction bids to clicks/views within 15 minutes. The old Java service read up to 200 MB/s, could not partition both streams cleanly, and lost up to 15 minutes of state on every deploy or rescale. After Interval Join burned 15-30% CPU on RocksDB seeks and held a ~70M-entry timer queue, they rewrote the match with KeyedCoProcessFunction (point lookups, RocksDB TTL expiry), incremental 3-minute checkpoints, and two-way state. A four-week shadow pipeline hit 99.9% enrichment parity, then a one-week A/B test; average pods fell from 20 to about 5, memory from ~320 GB to ~100 GB, and EC2 cost from about €80 to €30 per day, with enrichment up ~0.5%.

up to 200 MB/s on the old pipelineaverage pods cut from a constant 20 to ~5 (range 1-8)stream joinscheckpointingkeyed stateApache FlinkRocksDBKubernetes

Get new autoscaling scaling stories weekly

One email a week. No spam.

Companies in these stories

Browse all 105 topics →