Google Cloud Dataflow is a fully managed service that executes Apache Beam pipelines for batch and streaming, provisioning and autoscaling worker VMs automatically and processing every record exactly once by default.
Serverless in operation: submit a Beam pipeline (Java, Python, Go, or YAML) and the service allocates Compute Engine workers in your project, scales them, and tears them down. Streaming Engine moves execution state into the service backend; delivery is exactly-once by default.
How Google Cloud Dataflow answers the questions Stream Processing turns on.
| How it works | |
| Processing model | Beam's unified batch and streaming model, executed by the service rather than a cluster you run |
| APIs | Beam SDKs: Java, Python, Go; Beam YAML and the job builder UI; classic and Flex templates (Dataflow SQL shut down in 2025) |
| Windowing | Beam's: fixed, sliding, session, global; calendar in Java |
| Event time and lateness | Beam's: watermarks with triggers, configurable allowed lateness and accumulation modes |
| State backend | Managed by the service: on the worker VMs and their disks by default, in the service backend with Streaming Engine |
| Delivery guarantee | Exactly-once by default; at-least-once mode for streaming |
| Reading results | Through sinks only: there is no serving layer |
| Running it | |
| What you run | Nothing to install, but the worker VMs are Compute Engine instances in your own project; Streaming Engine moves execution into the service backend |
| Scaling | Horizontal autoscaling on by default with Streaming Engine, with min and max workers adjustable in flight; vertical autoscaling needs Dataflow Prime |
| Connections | |
| Connectors | Beam's I/O set: Pub/Sub, BigQuery, Bigtable, Spanner, Cloud Storage, Kafka, Iceberg; Managed I/O auto-upgrades the Kafka, Iceberg and BigQuery ones |
vs Google Cloud Dataflow: Open source (permissive) · Self-hosted · Managed · Free · Operational complexity: Medium · Java, Python, Go
vs Google Cloud Dataflow: Open source (permissive) · Self-hosted · Managed · Free · Subscription · Operational complexity: High · Java, Scala, Python
vs Google Cloud Dataflow: Open source (permissive) · Self-hosted · Managed · Free · Subscription · Operational complexity: High · Batch · Streaming · Scala, Python, Java