[ https://issues.apache.org/jira/browse/KAFKA-12960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17367795#comment-17367795 ]
A. Sophie Blee-Goldman commented on KAFKA-12960: ------------------------------------------------ +1 on pushing this responsibility to the state stores. Imo this was always intended to be a contract of the state store interface itself and was just not strictly enforced, ie it's more like a bug to fix than a matter of "pushing" the responsibility onto them > WindowStore and SessionStore do not enforce strict retention time > ----------------------------------------------------------------- > > Key: KAFKA-12960 > URL: https://issues.apache.org/jira/browse/KAFKA-12960 > Project: Kafka > Issue Type: Improvement > Components: streams > Reporter: Matthias J. Sax > Priority: Major > > WindowedStore and SessionStore do not implement a strict retention time in > general. We should consider to make retention time strict: even if we still > have some record in the store (due to the segmented implementation), we might > want to filter expired records on-read. This might benefit PAPI users. > Atm, InMemoryWindow store does already enforce a strict retention time. > As an alternative, we could also inject such a filter in the wrapping > `MeteredStore` – this might lift the burden from users who implement a custom > state store. > As an alternative, we could change all DSL operators to verify if data from a > state store is already expired or not. It might be better to push this > responsibility into the stores though. > It's especially an issue for stream-stream joins, because the operator relies > on the retention time to implement it's grace period. -- This message was sent by Atlassian Jira (v8.3.4#803005)