Apache Flink is an open-source framework for stateful computation over unbounded and bounded data streams, with event-time processing, exactly-once state consistency, and CDC ingestion via Flink CDC.
Self-host a cluster (JobManager plus TaskManagers) on Kubernetes or YARN, with state in HashMap or RocksDB backends checkpointed to durable storage. Applications use DataStream (Java/Scala), PyFlink, or Flink SQL. Managed Flink is sold by Confluent, Ververica, AWS, and others.
How Apache Flink answers the questions each capability turns on.
| How it works | |
| Initial snapshot | Lock-free incremental snapshot, chunked and resumable |
| End-to-end lag | Sub-second; changes flow into the same job that processes them |
| Delivery guarantee | Exactly-once |
| Schema drift | Schema evolution modes: evolve, try_evolve, lenient, ignore, exception |
| Running it | |
| What you run | A Flink cluster: JobManager and TaskManagers |
| Connections | |
| Sources | MySQL, PostgreSQL, Oracle, MongoDB, SQL Server, Db2 |
| Source requirements | ROW binlog on MySQL, logical decoding on Postgres, per connector |
| Transformations | Full Flink processing in the same job; YAML transform for pipelines |
| Destinations | Any Flink sink: Kafka, warehouses, table formats |
| Cost | |
| Billing unit | None for the project; managed Flink billed by the vendor |
| How it works | |
| Processing model | Record-at-a-time streaming; batch is a bounded stream |
| APIs | DataStream, Table/SQL, ProcessFunction |
| Windowing | Tumbling, sliding, session, global |
| Event time and lateness | Event time with watermarks; allowed lateness and side outputs |
| State backend | HashMap, RocksDB, ForSt (experimental, disaggregated) |
| Delivery guarantee | Exactly-once |
| Reading results | Through sinks; queryable state exists but is deprecated |
| Running it | |
| What you run | A Flink cluster: JobManager and TaskManagers |
| Scaling | Rescale from checkpoint; adaptive scheduler and reactive mode |
| Connections | |
| Connectors | Kafka, Pulsar, Kinesis, JDBC, filesystems, Iceberg and Paimon |
vs Apache Flink: Free · Operational complexity: Medium · Java, Python, Go
vs Apache Flink: Batch · Streaming · Scala, Python, Java
vs Apache Flink: Self-hosted · Free · Operational complexity: Medium · Rust