Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Replace "wrapper" paragraph with a less implementation dependent section.

...

3 new methods will be added to StateStore, each defined with a default implementation that ensures existing custom StateStores continue to function as they do today, to guarantee compatibility. All internal StateStore implementations will be updated with implementations of each of these methods that best suits that implementation.A new, WrappedStateStore implementation will be

provided internally, which will provide the legacy .checkpoint file offset management behaviour used today. When opening state stores, the StateManager  will automatically wrap the store with this legacy wrapper iff it's both persistent()  and does not managesOffsets(). This will ensure that existing, For persistent stores (i.e. StateStore#persistent()  returns true) that do not manage their own offsets (i.e. StateStore#managedOffsets() returns false), the existing checkpointing behaviour will be provided internally, by continuing to store checkpoint offsets in the .checkpoint file. This will ensure compatibility for custom stores that have not been upgraded to support the new API will function as they do today, without polluting the StateManager with a large amount of legacy code, which would make it difficult to testmanage their own offsets yet.

StateStore Implementations

...