Skip to content

manager: store pending events in a list state

Gmodena requested to merge add-window-list-state into main

manager: store pending events in a list state

Keep a list of pending events (i.e., events in the current batch/window) in Flink ListState to avoid data loss and duplicate event processing (e.g., repeated API calls) in case of application restarts or failures.

This guarantee applies within a single window firing: upon recovery, both source offsets and this ListState will be restored to their state at the last successful checkpoint, ensuring that only unprocessed (pending) events are retried.

The ListState is checkpointed consistently as part of Flink's distributed snapshots. Since events are nested dict objects that cannot be easily hashed or frozen, we store them "as is" rather than trying to serialize to a reproducible representation.

Flink 1.17 backport at backport-flink-17.

Bug: T347282

cc / @dcausse @otto @tchin

Edited by Gmodena

Merge request reports

Loading