Apache Flink in Batch Mode

Apache Flink 129 (github.com/apache/flink (https://github.com/apache/flink 26,378 ), Apache-2.0, 2.3.0, June 2026) is a stream processor first (ksqlDB and Apache Flink uses it with Kafka 129 ), but it treats batch as a bounded stream: setting execution.runtime-mode to BATCH lets the same DataStream or Table/SQL program run over files with batch scheduling, blocking shuffles and sort-based operators. That makes it attractive when a team already runs Flink for streaming and wants one engine and one SQL dialect for both. For pure batch, its ecosystem (connectors, Python API, notebooks, managed offerings) is narrower than Spark 129 's, and a Flink cluster (JobManager plus TaskManagers) is at least as heavy to operate. Flink batch is not run here: it is a cluster engine, and ksqlDB and Apache Flink runs Flink where it shines, on streams.