Hi Jun, Relying on both creation times will create an inconsistent scenario. A consumer that lost all offsets due to a long sleep will seek to the beginning for the partitions created later than the group.
That is why we initially proposed KIP-1282 to fix the inconsistency using a whole new policy. Since KIP-1282 couldn't reach a consensus, KIP-1327 goes back to using flexible configurations to prevent users from falling into that pitfall. Best, Chia-Ping Jun Rao via dev <[email protected]> 於 2026年6月13日週六 上午6:49寫道: > Hi, Jiunn-Yang, > > Thanks for the reply and sorry for the late reply. > > JR1. The design of auto.offset.reset.max.age.ms still feels weird to me. > It > categorizes partitions as new or existing based on the partition creation > time. Intuitively, the categorization should be based on the group creation > time: all partitions existing when the group is created are existing and > all partitions created after the group creation are new partitions. > > Jun > > > > On Tue, Jun 9, 2026 at 8:51 AM 黃竣陽 <[email protected]> wrote: > > > Hi all, > > > > Manually bumping this thread. If there is no further > > discussion, I will close the vote. > > > > Best Regards, > > Jiunn-Yang > > > > > 黃竣陽 <[email protected]> 於 2026年6月1日 晚上7:16 寫道: > > > > > > Hello Jian, > > > > > > Thanks for your feedback, > > > > > > Agreed, partition expansion is a common operational task, not an edge > > > case. I've updated the Motivation section accordingly. > > > > > > Best Regards, > > > Jiunn-Yang > > > > > >> jian fu <[email protected]> 於 2026年6月1日 下午5:49 寫道: > > >> > > >> Hi Jiunn-Yang: > > >> > > >> Thanks for the KIP. I think it would be useful to clarify that this > is a > > >> common scenario rather than an edge case, which further demonstrates > the > > >> need for this optimization. For example: > > >> A partition expansion is a common operational task in Kafka: To > balance > > >> resource utilization and cost, topics are typically created with a > > moderate > > >> default partition count. However, as traffic grows over time, it is > > often > > >> necessary to increase the number of partitions to accommodate the > higher > > >> workload. > > >> > > >> Regards > > >> Jian > > >> > > >> 黃竣陽 <[email protected]> 于2026年5月30日周六 22:31写道: > > >> > > >>> Hello chia, > > >>> > > >>> Thanks for the comments, I have updated the KIP! > > >>> > > >>> Best Regards, > > >>> Jiunn-Yang > > >>> > > >>>> Chia-Ping Tsai <[email protected]> 於 2026年5月30日 晚上8:29 寫道: > > >>>> > > >>>> Hi Jiunn-Yang, > > >>>> > > >>>> Would you mind removing the terms "hot" and "cold" when describing > > >>>> partitions in the KIP? I understand you are using them to describe > the > > >>>> "freshness" or the users' need for the records, but applying these > > terms > > >>> to > > >>>> the partition itself feels a bit unnatural. > > >>>> > > >>>> After all, in this scenario, users don't really care whether a > > partition > > >>> is > > >>>> newly expanded or not. Their only expectation is that they won't > > silently > > >>>> lose any live records produced to the topic during their active > > >>> consumption. > > >>>> > > >>>> Best, Chia-Ping > > >>>> > > >>>> > > >>>> > > >>>> 黃竣陽 <[email protected]> 於 2026年5月30日週六 下午12:30寫道: > > >>>> > > >>>>> Hello Jun, > > >>>>> > > >>>>> Thanks for the feedback, I have updated the KIP motivation section. > > >>>>> > > >>>>> Best Regards, > > >>>>> Jiunn-Yang > > >>>>> > > >>>>>> Jun Rao via dev <[email protected]> 於 2026年5月30日 凌晨1:12 寫道: > > >>>>>> > > >>>>>> Hi, Jiunn-Yang, > > >>>>>> > > >>>>>> Thanks for the reply. I think we need a stronger motivation for > the > > >>> KIP. > > >>>>>> > > >>>>>> The KIP says "The core insight is that not all partitions without > a > > >>>>>> committed offset are the same. A newly expanded partition (hot) is > > >>>>>> fundamentally different from a partition the consumer has never > seen > > >>>>>> because it predates the group (cold)." Why is the hot partition > > >>>>>> fundamentally different from the cold? > > >>>>>> > > >>>>>> The KIP says "The existing by_duration policy is also insufficient > > >>>>> because: > > >>>>>> > > >>>>>> - The calculated seek time (now() - duration) varies across nodes > > due > > >>>>> to > > >>>>>> clock skew. To be safe, users must set an overly large duration, > > >>>>> causing > > >>>>>> unnecessary reprocessing. > > >>>>>> - On network errors, the client recalculates the seek time on > retry, > > >>>>>> shifting the target timestamp forward and risking data loss." > > >>>>>> > > >>>>>> However, both of these situations are rare. If these issues > persist, > > >>> more > > >>>>>> severe problems likely exist elsewhere. Rare situations don't > need a > > >>>>> common > > >>>>>> solution. If users care about those rare situations, they can > > implement > > >>>>>> customized logic using > > >>> ConsumerRebalanceListener.onPartitionsAssigned(). > > >>>>>> > > >>>>>> Jun > > >>>>>> > > >>>>>> > > >>>>>> On Sun, May 17, 2026 at 6:50 AM 黃竣陽 <[email protected]> wrote: > > >>>>>> > > >>>>>>> Hello chia, > > >>>>>>> > > >>>>>>> Thanks for the feedback, > > >>>>>>> > > >>>>>>>> If the creation time exists, the returned value should always be > > >>>>> greater > > >>>>>>> than or equal to zero, right? > > >>>>>>> I have explicitly mentioned this in the KIP. > > >>>>>>> > > >>>>>>>>> New Old (MetadataResponse v0–13) positive any > > field > > >>>>>>> absent UnsupportedVersionException > > >>>>>>> > > >>>>>>> The earliest point at which we can detect the version mismatch is > > >>> during > > >>>>>>> the > > >>>>>>> first metadata fetch after assignment, which occurs inside > poll(). > > >>>>>>> Therefore, the > > >>>>>>> user would encounter an UnsupportedVersionException from poll(). > > I’ll > > >>>>>>> clarify this in the KIP. > > >>>>>>> > > >>>>>>> Best Regards, > > >>>>>>> Jiunn-Yang > > >>>>>>> > > >>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年5月17日 下午4:50 寫道: > > >>>>>>>> > > >>>>>>>> hi Jiunn > > >>>>>>>> > > >>>>>>>>> PartitionAgeMs (int64, default -1): The age of this partition > in > > >>>>>>> milliseconds, computed server-side by the broker as > > >>> broker_current_time > > >>>>> - > > >>>>>>> partition_creation_time. Returns -1 if the broker does not > support > > >>> this > > >>>>>>> feature or the partition creation time is unknown. > > >>>>>>>> > > >>>>>>>> If the creation time exists, the returned value should always be > > >>>>> greater > > >>>>>>> than or equal to zero, right? > > >>>>>>>> > > >>>>>>>>> New Old (MetadataResponse v0–13) positive any > > field > > >>>>>>> absent UnsupportedVersionException > > >>>>>>>> > > >>>>>>>> Will user encounter UnsupportedVersionException when calling > > >>> `poll()`? > > >>>>>>>> > > >>>>>>>> Best, > > >>>>>>>> Chia-Ping > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> On 2026/05/16 04:30:49 黃竣陽 wrote: > > >>>>>>>>> Hello Jun, chia, > > >>>>>>>>> > > >>>>>>>>> I've updated KIP-1327 with a design change based on the > > discussion > > >>>>>>>>> feedback. > > >>>>>>>>> > > >>>>>>>>> The updated design decouples the new-partition reset behavior > > from > > >>>>>>>>> the base auto.offset.reset policy: > > >>>>>>>>> > > >>>>>>>>> - auto.offset.reset.max.age.ms now applies to all > > auto.offset.reset > > >>>>>>> values > > >>>>>>>>> (latest, earliest, by_duration, none). > > >>>>>>>>> - For new ("hot") partitions, the consumer resets to > > >>>>>>> auto.offset.reset.new.partitions > > >>>>>>>>> config setting > > >>>>>>>>> - For existing ("cold") partitions, the base auto.offset.reset > > >>> policy > > >>>>>>> continues > > >>>>>>>>> to apply unchanged. > > >>>>>>>>> - The new-partition reset behavior is represented by a separate > > >>>>>>> internal config > > >>>>>>>>> (auto.offset.reset.new.partitions, currently fixed to > earliest). > > >>> This > > >>>>>>> decoupled design makes > > >>>>>>>>> it straightforward to promote the behavior to a public > > user-facing > > >>>>>>> configuration in a future KIP. > > >>>>>>>>> > > >>>>>>>>> Best Regards, > > >>>>>>>>> Jiunn-Yang > > >>>>>>>>> > > >>>>>>>>> > > >>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年5月16日 清晨7:46 寫道: > > >>>>>>>>>> > > >>>>>>>>>> hi Jun > > >>>>>>>>>> > > >>>>>>>>>> I see what you mean now. The proposal from me is listed below: > > >>>>>>>>>> > > >>>>>>>>>> 1) Add auto.offset.reset.new.partitions with a default value > of > > >>>>>>> earliest. It fixes the data loss from both by_duration and > latest, > > and > > >>>>> it > > >>>>>>> does not change the logic of auto.offset.reset=earliest. > > >>>>>>>>>> 2) Mark auto.offset.reset.new.partitions as an internal > > >>>>>>> configuration. auto.offset.reset.new.partitions=earliest already > > >>>>>>> addresses the issue, and we can discuss the use cases of other > > values > > >>>>> in a > > >>>>>>> separate KIP. > > >>>>>>>>>> 3) Both configs, auto.offset.reset.new.partitions and > > >>>>>>> auto.offset.reset.latest.max.age.ms, will be applied to all for > > >>>>>>> consistency. > > >>>>>>>>>> > > >>>>>>>>>> WDYT? > > >>>>>>>>>> > > >>>>>>>>>> On 2026/05/15 20:53:20 Jun Rao via dev wrote: > > >>>>>>>>>>> Hi, Chia-Ping, > > >>>>>>>>>>> > > >>>>>>>>>>> Thanks for the reply. > > >>>>>>>>>>> > > >>>>>>>>>>> 1. In the motivation section, the KIP says "When a Kafka > topic > > is > > >>>>>>> expanded > > >>>>>>>>>>> with new partitions, consumers using the latest auto offset > > reset > > >>>>>>> policy > > >>>>>>>>>>> will silently miss all records produced to those partitions > > before > > >>>>> the > > >>>>>>>>>>> consumer discovers them.". If a user sets > > >>>>>>>>>>> auto.offset.reset=by_duration=1sec, the same record loss > issue > > >>> could > > >>>>>>> also > > >>>>>>>>>>> happen, right? > > >>>>>>>>>>> > > >>>>>>>>>>> 2. I was thinking auto.offset.reset.new.partitions will take > > the > > >>>>> same > > >>>>>>>>>>> values as auto.offset.reset. So a user could set it > > by_duration if > > >>>>>>> needed. > > >>>>>>>>>>> > > >>>>>>>>>>> Jun > > >>>>>>>>>>> > > >>>>>>>>>>> On Thu, May 14, 2026 at 4:06 PM Chia-Ping Tsai < > > >>> [email protected] > > >>>>>> > > >>>>>>> wrote: > > >>>>>>>>>>> > > >>>>>>>>>>>> hi Jun > > >>>>>>>>>>>> > > >>>>>>>>>>>> Thanks for the feedback. I might be missing something > > important > > >>>>> from > > >>>>>>> your > > >>>>>>>>>>>> suggestion, so please bear with me as I try to clarify with > a > > few > > >>>>>>> questions: > > >>>>>>>>>>>> > > >>>>>>>>>>>> 1. Is there a strong use case for extending this logic to > > other > > >>>>> reset > > >>>>>>>>>>>> policies? Unlike latest, policies like earliest or > by_duration > > >>>>> don't > > >>>>>>> seem > > >>>>>>>>>>>> to suffer from the same silent data loss issue when a > > partition > > >>> is > > >>>>>>> expanded. > > >>>>>>>>>>>> > > >>>>>>>>>>>> 2. What values would we expect users to configure for > > >>>>>>>>>>>> auto.offset.reset.new.partitions? If they set it to > earliest > > or > > >>>>>>> latest, > > >>>>>>>>>>>> we might run into the exact same edge cases. For example, > if a > > >>>>>>> consumer is > > >>>>>>>>>>>> offline for a while and a new partition is created during > that > > >>>>>>> downtime, > > >>>>>>>>>>>> the user might actually want to skip to latest when > resuming, > > >>>>> rather > > >>>>>>> than > > >>>>>>>>>>>> reading from earliest just because the partition is > > technically > > >>>>>>> "new" to > > >>>>>>>>>>>> the group. > > >>>>>>>>>>>> > > >>>>>>>>>>>> This is exactly why we opted for introducing a max.age > > threshold. > > >>>>> It > > >>>>>>> gives > > >>>>>>>>>>>> users a time-bound way to define what is genuinely "hot/new" > > and > > >>>>>>> what is > > >>>>>>>>>>>> just an old partition they haven't seen yet. > > >>>>>>>>>>>> > > >>>>>>>>>>>> Best, > > >>>>>>>>>>>> Chia-Ping > > >>>>>>>>>>>> > > >>>>>>>>>>>> On 2026/05/14 20:48:09 Jun Rao via dev wrote: > > >>>>>>>>>>>>> Hi, Jiunn-Yang, > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> Thanks for the KIP. > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> I find auto.offset.reset.latest.max.age a bit weird. It > only > > >>>>>>> applies when > > >>>>>>>>>>>>> auto.offset.reset is latest. However, it seems that the > > >>> motivation > > >>>>>>>>>>>> equally > > >>>>>>>>>>>>> applies when auto.offset.reset is set to other values like > > >>>>>>> by_duration. > > >>>>>>>>>>>> The > > >>>>>>>>>>>>> intention is that we want to have a separate way to control > > >>> newly > > >>>>>>> created > > >>>>>>>>>>>>> partitions vs existing partitions when the group starts. > > Have we > > >>>>>>>>>>>> considered > > >>>>>>>>>>>>> adding a new config like auto.offset.reset.new.partitions? > > If > > >>>>> this > > >>>>>>> new > > >>>>>>>>>>>>> config is not set, the offset reset policy defaults to the > > >>> policy > > >>>>>>> used > > >>>>>>>>>>>> for > > >>>>>>>>>>>>> existing partitions. The user could set it explicitly to > > >>> customize > > >>>>>>> the > > >>>>>>>>>>>>> behavior for new partitions. > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> Jun > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> On Thu, May 7, 2026 at 5:07 AM 黃竣陽 <[email protected]> > > wrote: > > >>>>>>>>>>>>> > > >>>>>>>>>>>>>> Hi all, > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> I’d like to manually bump this thread. > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> Best Regards, > > >>>>>>>>>>>>>> Jiunn-Yang > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> 黃竣陽 <[email protected]> 於 2026年5月1日 晚上10:37 寫道: > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> Hello all, > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> Thanks for the feedback. > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> DJ01/DJ02: > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> MetadataResponse bumps from v13 to v14. The > > PartitionMetadata > > >>>>>>> struct > > >>>>>>>>>>>>>> gains a new > > >>>>>>>>>>>>>>> field PartitionAgeMs (int64, default -1), computed > > server-side > > >>>>> by > > >>>>>>> the > > >>>>>>>>>>>>>> broker as > > >>>>>>>>>>>>>>> broker_current_time - partition_creation_time. > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> Also add the consumer heartbeat flow. when > > MembershipManager > > >>>>>>> detects > > >>>>>>>>>>>> a > > >>>>>>>>>>>>>> newly assigned > > >>>>>>>>>>>>>>> partition, it explicitly invalidates the metadata for the > > >>>>> affected > > >>>>>>>>>>>> topic > > >>>>>>>>>>>>>> and forces a fresh MetadataRequest > > >>>>>>>>>>>>>>> before making the offset reset decision, even if the > topic > > ID > > >>> is > > >>>>>>>>>>>> already > > >>>>>>>>>>>>>> in the cache. > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> MB0: > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> The consumer learns the broker's maximum supported > > >>>>>>> MetadataResponse > > >>>>>>>>>>>>>> version via the > > >>>>>>>>>>>>>>> ApiVersions negotiation at connection time. If the > > negotiated > > >>>>>>>>>>>> version is > > >>>>>>>>>>>>>> unsupported, the consumer > > >>>>>>>>>>>>>>> knows the broker does not support PartitionAgeMs at all > and > > >>> can > > >>>>>>>>>>>> throw an > > >>>>>>>>>>>>>> UnsupportedVersionException > > >>>>>>>>>>>>>>> immediately, rather than silently falling back to latest > > and > > >>>>>>> risking > > >>>>>>>>>>>>>> data loss without any operator-visible signal. > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> MB1/MB2/MB3: > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> I have addressed these changes in the KIP. > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> Best Regards, > > >>>>>>>>>>>>>>> Jiunn-Yang > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年4月29日 下午4:04 > > 寫道: > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> hi David > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> I agree with the direction of moving the 'age' > resolution > > >>> from > > >>>>>>> the > > >>>>>>>>>>>>>> Heartbeat API to the Metadata API to keep the control > plane > > >>>>> clean. > > >>>>>>> The > > >>>>>>>>>>>> main > > >>>>>>>>>>>>>> trade-off, as we noted before, is introducing inter-broker > > >>> clock > > >>>>>>> skew. > > >>>>>>>>>>>> The > > >>>>>>>>>>>>>> Group Coordinator approach provided a single source of > truth > > >>> for > > >>>>>>> time. > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> However, realistically, this time skew should be > > negligible. > > >>>>>>> Given > > >>>>>>>>>>>> that > > >>>>>>>>>>>>>> the max.age threshold will likely be configured in minutes > > or > > >>>>>>> hours, a > > >>>>>>>>>>>>>> typical NTP skew (in milliseconds) between brokers won't > > impact > > >>>>> the > > >>>>>>>>>>>>>> fallback decision. > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> Best, > > >>>>>>>>>>>>>>>> Chia-Ping > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> David Jacot via dev <[email protected]> 於 > 2026年4月29日 > > >>>>> 下午3:29 > > >>>>>>> 寫道: > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Hi all, > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Thanks for the KIP! > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Sorry, I haven't really followed the previous > > conversation > > >>>>> but I > > >>>>>>>>>>>> took a > > >>>>>>>>>>>>>>>>> quick look at this one. > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> DJ01: I don't clearly understand the flow with the > > >>>>>>>>>>>>>> ConsumerGroupHeartbeat > > >>>>>>>>>>>>>>>>> API after reading the KIP. There is a new boolean; the > > KIP > > >>>>>>> states > > >>>>>>>>>>>> that > > >>>>>>>>>>>>>>>>> partition ages are returned only when this boolean is > > set. > > >>>>>>>>>>>> Implicitly, > > >>>>>>>>>>>>>> this > > >>>>>>>>>>>>>>>>> means that when the consumer receives a new partition, > it > > >>> will > > >>>>>>>>>>>> issue a > > >>>>>>>>>>>>>> new > > >>>>>>>>>>>>>>>>> HB request with the boolean set to receive the ages. Is > > my > > >>>>>>>>>>>>>> understanding > > >>>>>>>>>>>>>>>>> correct? We should perhaps clarify the flow and also > > explain > > >>>>>>> how it > > >>>>>>>>>>>>>> fits > > >>>>>>>>>>>>>>>>> into the existing flow (e.g. list offsets, fetch > offsets, > > >>>>> etc.). > > >>>>>>>>>>>>>>>>> DJ02: It my understanding is correct, I wonder if > > >>>>>>>>>>>>>>>>> the ConsumerGroupHeartbeat API is the right place for > > this > > >>>>> given > > >>>>>>>>>>>> that > > >>>>>>>>>>>>>> a new > > >>>>>>>>>>>>>>>>> round trip is done anyway. Alternatively, it could > simply > > >>>>>>> include > > >>>>>>>>>>>> the > > >>>>>>>>>>>>>>>>> metadata. Generally, we should be rather cautious about > > not > > >>>>>>>>>>>> overloading > > >>>>>>>>>>>>>>>>> the ConsumerGroupHeartbeat API with unrelated concepts. > > The > > >>>>> API > > >>>>>>> is > > >>>>>>>>>>>> a > > >>>>>>>>>>>>>>>>> control plane API for assigning or revoking partitions. > > The > > >>>>> fact > > >>>>>>>>>>>> that > > >>>>>>>>>>>>>> we > > >>>>>>>>>>>>>>>>> don't want to add it to the corresponding Streams API > > also > > >>>>>>> suggests > > >>>>>>>>>>>>>>>>> something is not quite right. What would we do if we > > want to > > >>>>>>>>>>>> support > > >>>>>>>>>>>>>>>>> Streams in the future? > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Best, > > >>>>>>>>>>>>>>>>> David > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> On Wed, Apr 29, 2026 at 12:28 AM Muralidhar Basani via > > dev > > >>> < > > >>>>>>>>>>>>>>>>>> [email protected]> wrote: > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> Hi Jiunn, > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> Thank you for this great kip. Good to know about the > > gap. > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> mb-0 - why a new v2 version bump for > > RequestPartitionAges > > >>>>>>> field. > > >>>>>>>>>>>> Can a > > >>>>>>>>>>>>>>>>>> tagged field (for ex: on response, PartitionAges on > > >>>>>>>>>>>> TopicPartitions) > > >>>>>>>>>>>>>> be > > >>>>>>>>>>>>>>>>>> used here and avoid version bump? > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> mb-1 - For the new config, is there a recommended > value > > or > > >>> a > > >>>>>>>>>>>> ConfigDef > > >>>>>>>>>>>>>>>>>> validator? Probably it should based on the > > >>>>> metadata.max.age.ms > > >>>>>>> ? > > >>>>>>>>>>>>>> Sizing > > >>>>>>>>>>>>>>>>>> instructions can be part of javadocs I guess. > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> mb-2 - (minor) As there are no changes to Kafka > Streams, > > >>>>> would > > >>>>>>> it > > >>>>>>>>>>>> be > > >>>>>>>>>>>>>> better > > >>>>>>>>>>>>>>>>>> to add this new config > auto.offset.reset.latest.max.age > > to > > >>>>> the > > >>>>>>>>>>>>>>>>>> StreamsConfig block list > > >>>>>>>>>>>> (NON_CONFIGURABLE_CONSUMER_DEFAULT_CONFIGS) > > >>>>>>>>>>>>>> for a > > >>>>>>>>>>>>>>>>>> clear warning, incase users configure it? This is the > > most > > >>>>>>>>>>>> familiar > > >>>>>>>>>>>>>>>>>> consumer config and users might easily mistakenly > > configure > > >>>>>>> it. Or > > >>>>>>>>>>>>>> may be > > >>>>>>>>>>>>>>>>>> it's not worth it to add. > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> mb-3 - (minor) The phrasing "the consumer falls back > to > > >>>>>>> earliest" > > >>>>>>>>>>>>>> reads as > > >>>>>>>>>>>>>>>>>> if the config were being changed per-partition which > > isn't > > >>>>>>>>>>>> supported. > > >>>>>>>>>>>>>> May > > >>>>>>>>>>>>>>>>>> be rephrasing to something like "consumer resolves the > > >>>>> initial > > >>>>>>>>>>>>>> position to > > >>>>>>>>>>>>>>>>>> start offset for that partition" as if earliest was > > applied > > >>>>> to > > >>>>>>>>>>>> that > > >>>>>>>>>>>>>>>>>> partition only and auto.offset.reset config is > > unchanged. > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> Thanks, > > >>>>>>>>>>>>>>>>>> Murali > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>> On Tue, Apr 28, 2026 at 2:48 PM 黃竣陽 < > > [email protected]> > > >>>>>>> wrote: > > >>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>> Hi chia, > > >>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>> I have updated the KIP to include this change. > > >>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>> Best Regards, > > >>>>>>>>>>>>>>>>>>> Jiunn-Yang > > >>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年4月28日 > > 晚上8:03 > > >>>>> 寫道: > > >>>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>> hi Jiunn-Yang > > >>>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>> chia_0: Should we expose the partition creation time > > via > > >>>>> the > > >>>>>>>>>>>> Admin > > >>>>>>>>>>>>>> API? > > >>>>>>>>>>>>>>>>>>> I assume it would be valuable for users to diagnose > and > > >>>>>>>>>>>> troubleshoot > > >>>>>>>>>>>>>> the > > >>>>>>>>>>>>>>>>>>> behavior of auto.offset.reset.latest.max.age > > >>>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>> Best, > > >>>>>>>>>>>>>>>>>>>> Chia-Ping > > >>>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>> On 2026/04/28 10:47:58 黃竣陽 wrote: > > >>>>>>>>>>>>>>>>>>>>> Hello everyone, > > >>>>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>>> I would like to start a discussion on KIP-1327 > > Prevent > > >>> Hot > > >>>>>>> Data > > >>>>>>>>>>>>>> Loss > > >>>>>>>>>>>>>>>>>> on > > >>>>>>>>>>>>>>>>>>> Partition Expansion for Latest Policy > > >>>>>>>>>>>>>>>>>>>>> < > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>> > > >>>>>>>>>>>> > > >>>>>>> > > >>>>> > > >>> > > > https://urldefense.com/v3/__https://cwiki.apache.org/confluence/x/KY4mGQ__;!!Ayb5sqE7!qF4q1QzF1RRgP61D7A2xuEai1ky7fepKDKFFvpNBuePikH-ULmT87TvuuZzy5kau5E4y5zMZAmfQQiwZomM$ > > >>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>>> This proposal aims to introduces > > >>>>>>>>>>>> auto.offset.reset.latest.max.age, > > >>>>>>>>>>>>>> a > > >>>>>>>>>>>>>>>>>>> consumer config that lets the > > >>>>>>>>>>>>>>>>>>>>> latest reset policy distinguish newly expanded > (hot) > > >>>>>>> partitions > > >>>>>>>>>>>>>> from > > >>>>>>>>>>>>>>>>>>> long-existing (cold) ones. Partitions > > >>>>>>>>>>>>>>>>>>>>> younger than the configured threshold automatically > > fall > > >>>>>>> back > > >>>>>>>>>>>> to > > >>>>>>>>>>>>>>>>>>> earliest, preventing silent data loss > > >>>>>>>>>>>>>>>>>>>>> during topic expansion without forcing a full > > historical > > >>>>>>>>>>>> reprocess. > > >>>>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>>>> Best regards, > > >>>>>>>>>>>>>>>>>>>>> Jiunn-Yang > > >>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>> > > >>>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>> > > >>>>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>> > > >>>>> > > >>> > > >>> > > > > > > > >
