Apache Flink is a distributed stream processing framework built for stateful computation over both unbounded and bounded data, commonly run alongside Kafka as the event backbone it consumes from.
This hub is the entry point to what we have written about running Flink in production. It is new and will grow section by section as we publish more, starting with Flink use cases: real deployments, with the architecture and the numbers behind them.
Everything the Flink cluster covers
Companies running Apache Flink in production and the architectures behind their deployments, indexed as we publish them.
Learn moreHow Netflix runs more than 30,000 Apache Flink jobs across Keystone, its Data Mesh SQL Processor, and a real-time distributed graph.
Learn moreHow Uber runs more than 2,000 Apache Flink SQL jobs processing over 4 trillion messages a day, from AthenaX through to IngestionNext, its Flink-to-Hudi streaming data lake.
Learn moreHow Lyft runs Apache Flink across pricing and matching features, fraud detection, and one of its largest streaming jobs, moving 80 gigabytes of events a minute from Kinesis to S3.
Learn moreHow Booking.com's Security Platform Services team runs Apache Flink as the engine behind an internal security-as-a-service platform, scaling to more than 250 jobs under Ververica Platform.
Learn moreHow Pinterest runs 130+ Apache Flink jobs across eight multitenant YARN clusters for image-similarity detection, experiment analytics, ad-budget enforcement, and CDC ingestion into Iceberg.
Learn moreHow Airbus's AirSense unit processes more than 2 billion aircraft-position events a day with Apache Flink, fusing multi-provider ADS-B feeds into real-time global flight tracking.
Learn moreHow Alibaba built Blink, its internal Apache Flink fork, to handle 4 billion records a second during Double 11, then merged its isolation and checkpointing innovations into Apache Flink 1.9 and 1.10.
Learn moreWhich checkpoint stage is slow, the Flink metric that proves it, and the one configuration change to try first.
Learn moreHow to find the root exception, tell a transient failure from a permanent one, and set a restart strategy that stops the loop.
Learn moreHow to find the operator and state that hold the growth, tell a leak from legitimate growth, and bring it down with TTL, incremental checkpoints, RocksDB and key design.
Learn moreHow to find the busy operator behind the backpressured ones, tell a slow sink, skewed keys, a slow external call and too little parallelism apart, and fix the right one.
Learn moreThe safe stop, verify, deploy and restore procedure, and how to diagnose a restore that fails on operator uids, state schema, max parallelism or claim mode.
Learn moreHow to decide whether more parallelism will help, the limits set by max parallelism, Kafka partitions and task slots, and how to rescale with a savepoint or the Kubernetes operator autoscaler.
Learn moreHow to read currentInputWatermark, currentOutputWatermark and numLateRecordsDropped to tell an idle Kafka partition, wrong timestamps, the wrong out-of-orderness bound and unread late data apart, and fix the right one.
Learn moreWhat JobManager high availability protects, how to confirm it is configured and working, and how to fix a failover that loops or a cluster that came back without its jobs.
Learn moreWhy the Flink Kafka source commits offsets only on completed checkpoints, how to read pendingRecords, the per-partition currentOffset gauge and records-lag-max, and how to fix failing commits, stale offsets and shared group ids.
Learn moreHow to read the changelog mode with EXPLAIN, choose the kafka or upsert-kafka connector, handle keys and tombstones, and set the delivery guarantee that decides what a restart writes.
Learn moreSix Flink management tools scored on tenant boundaries, who may act on which job, one view across clusters, the data path and self-service for application teams.
Learn moreFour Flink UIs scored on submitting, stopping and restoring jobs, inspecting them, reading exceptions and logs, one view across clusters, sign-in and the data path.
Learn moreAll Flink articles
Tools
- Best Flink management tool for platform teams serving many teams
- Best Flink management tool for regulated teams: access control, audit and SSO
- Best Flink tools for Flink on Kubernetes
- Best Flink tools for self-managed Apache Flink
- Best Flink tools for Ververica Platform
- Best Flink UI for submitting and managing jobs day to day
- Best tools to monitor and operate Flink jobs
Troubleshooting
- Flink SQL to Kafka: fix duplicate or missing rows
- How to find and fix Flink state that keeps growing
- How to find the bottleneck behind Flink backpressure
- How to fix a Flink job stuck in a restart loop
- How to fix Flink checkpoints that fail or time out
- How to fix Flink windows that never fire or drop late events
- How to fix Kafka consumer lag that looks wrong for a Flink job
- How to recover from a Flink JobManager failure with HA
- How to rescale a Flink job that cannot keep up
- How to upgrade a Flink job from a savepoint without losing state
Use cases
- Flink use cases
- How Airbus uses Apache Flink in production
- How Alibaba uses Apache Flink in production
- How Booking.com uses Apache Flink in production
- How Lyft uses Apache Flink in production
- How Netflix uses Apache Flink in production
- How Pinterest uses Apache Flink in production
- How Uber uses Apache Flink in production