...
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
...