How Apache Flink Processes Streaming Data
Apache Flink is a distributed stream-processing framework that ingests continuous data, applies transformations in parallel, and outputs results with fault tolerance and low latency.
LyftMaheep MyneniProblem & solution
Lyft migrated its fleet of hundreds of critical streaming jobs from an internally developed Flink Kubernetes operator to the open-source Apache Flink Kubernetes operator. The legacy system imposed maintenance burden, feature gaps, outdated dependencies, fragile savepoint handling, and a rigid memory model that complicated varied workloads, including Apache Beam applications. Lyft used an incremental migration designed to preserve deployment patterns and team workflows while addressing CRD translation, state-machine behavior, and operational compatibility. The new platform added explicit last-state upgrades, autoscaling, automatic memory tuning, and safer upgrade mechanisms, though autotuning required trade-offs with in-place autoscaling and node capacity planning. After the multi-quarter transition, maintenance burden was minimized, the autoscaler right-sized a fleet previously overprovisioned by a few million dollars annually, and Lyft could contribute fixes upstream instead of maintaining its own operator.
Lyft’s internally developed operator accumulated technical debt, outdated dependencies, feature gaps, fragile savepoint handling, and an inflexible memory model as the streaming fleet and workload complexity grew. The migration also had to avoid disrupting existing deployment patterns, team workflows, and production workloads.
Lyft moved the fleet incrementally to the Apache Flink Kubernetes operator, adapting deployment configuration and handling state-machine, CRD, and memory-model differences. It adopted features including last-state upgrades, autoscaling, autotuning, Karpenter, and a two-tier policy that balances autotuning against in-place autoscaling according to application criticality.
The legacy operator used savepoints as the primary state-preservation mechanism, with fragile failure handling; the Apache operator’s explicit last-state upgrade mode uses high-availability metadata or the latest checkpoint by design.
Autotuning and in-place autoscaling required a trade-off: business-critical applications kept in-place autoscaling without autotuning, while less critical applications could use both with restart-based changes.
Autotuning disrupted Lyft’s static node-pool assumptions, prompting adoption of Karpenter to provision EC2 nodes from actual pod requirements and improve utilization.
Summaries are generated from the original by a language model. Check the original before relying on it.
See the idea
Apache Flink is a distributed stream-processing framework that ingests continuous data, applies transformations in parallel, and outputs results with fault tolerance and low latency.
Keep reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
One useful email. Unsubscribe anytime.