back to collapsed details

Bounded Splittable DoFn Support Status

Google Cloud DataflowPrism Local RunnerApache FlinkFlareDBApache Spark (RDD/DStream based)Apache Spark Structured Streaming (Dataset based)Hazelcast JetKafka Streams (experimental, not released)Twister2Python Direct FnRunner
Base

Partially : Only Dataflow Runner V2 supports this.


Yes : fully supported


Partially : Only portable Flink Runner supports this.


Yes : fully supported


Bounded Splittable DoFns are expanded (pair-with-restriction, split-and-size, truncate, process) and executed with residual handling.

Partially : Only portable Spark Runner in batch mode supports this.


:


:


:


Yes :


No : not implemented


Side Inputs

Partially : Only Dataflow Runner V2 supports this.


Yes : fully supported


Partially : Only portable Flink Runner supports this.


No : not implemented


SDF side inputs are modeled in the expansion but not delivered to the harness.

:


:


:


:


:


No : not implemented


Splittable DoFn Initiated Checkpointing

Partially : Only Dataflow Runner v2 supports this.


Yes : fully supported


Partially : Only portable Flink Runner supports this.


Yes : fully supported


Residual roots returned by the SDF are processed as new work items with output-watermark holds.

Partially : Only portable Spark Runner in batch mode supports this.


:


:


:


Yes :


No : not implemented


Dynamic Splitting

Partially : Only Dataflow Runner V2 supports this.


Yes : fully supported


No :


No : not implemented


Runner-initiated work splitting is not implemented yet.

No :


:


:


:


Yes : Only with Python SDK


No : not implemented


Bundle Finalization

Partially : Only Dataflow Runner V2 supports this.


Yes : fully supported


No :


No : not implemented


No : not implemented


:


:


:


Yes :


No : not implemented


Last updated on 2026/10/09

Have you found everything you were looking for?

Was it all useful and clear? Is there anything that you would like to change? Let us know!