This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.

Status

Current state: Accepted (2.1.0)

Discussion thread: TBD

JIRA: KAFKA-7101

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

The WindowBytesStore interface provides a method to get the retention period of the window, which can then be used in the wrapper StoreBuilder to determine the corresponding changelog's retention period. However, for SessionBytesStoreSupplier this function is missing.


Public Interfaces

In SessionBytesStoreSupplier, we will add:

  • long retentionPeriod();


Proposed Changes

The changes should be straight forward: expose the retention period value via this function.


Compatibility, Deprecation, and Migration Plan

  • Users customizing the SessionBytesStoreSupplier should not implement this function. That means:
    1. For users of DSL, with customized session store, they need to pass in that SessionBytesStoreSupplier into Materialized, and hence need to always customize that interface and hence be impacted.

    2. For users of PAPI, they will be addStore with a `StoreBuilder`. Note that users can either customize the SessionBytesStoreSupplier and pass into `Stores#persistentSessionStore`, or they can go directly instantiate the `StoreBuilder` interface. For the latter case, they are not impacted.


Rejected Alternatives

None.


  • No labels