The Kafka Streams runner does not support user state or user timers in ParDo. Stages run with StateRequestHandler.unsupported() and no timer receivers, and the corresponding @ValidatesRunner categories are excluded.
This covers UsesStatefulParDo, UsesTimersInParDo, UsesTimerMap, UsesLoopingTimer, UsesProcessingTimeTimers, UsesOnWindowExpiration and the various state types.
The pieces to build on already exist: KafkaStreamsStateInternals and KafkaStreamsTimerInternals back the windowed GroupByKey over Kafka Streams state stores, and the same backing could serve user state once the harness side is wired up. Input would also have to be shuffled by key, as GroupByKey already does.
Part of #18479.
The Kafka Streams runner does not support user state or user timers in
ParDo. Stages run withStateRequestHandler.unsupported()and no timer receivers, and the corresponding@ValidatesRunnercategories are excluded.This covers
UsesStatefulParDo,UsesTimersInParDo,UsesTimerMap,UsesLoopingTimer,UsesProcessingTimeTimers,UsesOnWindowExpirationand the various state types.The pieces to build on already exist:
KafkaStreamsStateInternalsandKafkaStreamsTimerInternalsback the windowed GroupByKey over Kafka Streams state stores, and the same backing could serve user state once the harness side is wired up. Input would also have to be shuffled by key, as GroupByKey already does.Part of #18479.