You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Arpit Goyal (Jira)" <ji...@apache.org> on 2026/04/14 00:55:00 UTC

[jira] [Commented] (KAFKA-20438) Allow dropping "future" records

    [ https://issues.apache.org/jira/browse/KAFKA-20438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18073321#comment-18073321 ] 

Arpit Goyal commented on KAFKA-20438:
-------------------------------------

[~mjsax]  I am picking this up

> Allow dropping "future" records
> -------------------------------
>
>                 Key: KAFKA-20438
>                 URL: https://issues.apache.org/jira/browse/KAFKA-20438
>             Project: Kafka
>          Issue Type: New Feature
>          Components: streams
>            Reporter: Matthias J. Sax
>            Assignee: Arpit Goyal
>            Priority: Major
>              Labels: needs-kip
>
> In the Kafka Streams DSL, certain stateful operators advance their state based on stream-time, ie, the highest observes record timestamp over all input records.
> In particular, window- and session-stores (and other segmented state stores) roll segments base on stream-time, and also apply window-close and grace-periods base on it.
> The issue is, that a single malformed record with a timestamp far in the future, might advance stream-time incorrectly, thus triggering closing windows and rolling segments too early, and there is no good way to recover from it.
> Currently, users could build manual filtering and compare a record timestamps to current stream-time (which is tracked by the KS runtime) to avoid such issues.
> We propose to add a built-in mechanism (either via a global config, or a per-window parameter like "grace period"), to let Kafka Streams drop such malformed future records automatically.
> Note: while it could also make sense to write such records into a DLQ, we should tackle DLQ support separately.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)