Hello! The `CheckpointedFunction` interface was introduced to provide user functions with a context for partitioned state storage. This works for user functions that are provided directly to the operator (assuming it extends from `AbstractUdfStreamOperator`). However, I see that some operators wrap the user function in an internal function (e.g. `WrappingFunction`, `InternalWindowFunction`). This defeats the callbacks on `CheckpointedFunction` because those wrappers don’t implement `CheckpointedFunction`. Is this by design or a bug?
For example, the user function passed to `WindowedStream::apply` will get callbacks for `RichFunction` but not for `CheckpointedFunction`. To fix it, the wrapper would assumedly implement `CheckpointedFunction` and contain logic similar to that found in `AbstractUdfStreamOperator` (including the handling of `ListCheckpointed`). Thanks Eron