Hello Jun, chia,

Thanks for the feedback, I have updated the KIP for the new 
approach, PTAL

Best Regards,
Jiunn-Yang

> Chia-Ping Tsai <[email protected]> 於 2026年6月16日 上午8:23 寫道:
> 
> hi Jun
> 
> Yes, your approach is great. I think the combination of latest (for existing 
> partitions) and by_duration (for new partitions) can address 99% of the 
> complaints I have heard regarding this issue.
> 
> Also, leveraging the group creation time here opens the door to implementing 
> a new policy based on timestamp seek in the future, should the community want 
> to pursue that.
> 
> Thanks for your patience and constructive feedback. We will update the KIP 
> accordingly.
> 
> Best, Chia-Ping
> 
>> Jun Rao via dev <[email protected]> 於 2026年6月16日 清晨5:11 寫道:
>> 
>> Hi, Chia-Ping,
>> 
>> Thanks for the reply.
>> 
>> I agree that it's probably useful to allow a user to configure a different
>> offset policy for existing partitions vs new partitions. However, using
>> group creation time to capture that seems more intuitive. Here is another
>> proposal: remove auto.offset.reset.max.age.ms and categorize new partitions
>> based on group creation time. Introduce
>> a new config auto.offset.reset.new.partitions whose values can be earliest,
>> latest and by_duration, the same as auto.offset.reset. Users can set
>> `auto.offset.reset.new.partitions` to `earliest` if they want to guarantee
>> no data loss on new partitions. They can also use by_duration to set an
>> upper bound on the backlog replayed, which can be different from that of
>> the existing partitions. This will address your concern about too much
>> backlog being replayed when the offsets are lost. What do you think?
>> 
>> Jun
>> 
>> 
>>> On Mon, Jun 15, 2026 at 10:39 AM Chia-Ping Tsai <[email protected]> wrote:
>>> 
>>> hi Jun
>>> 
>>> The most important part of this story is how users should expect the data
>>> they can see when using the latest or by_duration policy with expanded
>>> partitions.
>>> 
>>> Yes, the by_duration policy can minimize data loss, but it is
>>> non-deterministic, which means users will either read too many historical
>>> records from existing partitions or lose some records from expanded
>>> partitions.
>>> 
>>> Also, I agree that auto.offset.reset.max.age.ms
>>> <https://urldefense.com/v3/__http://auto.offset.reset.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpwnwknH$>
>>> is a bit hard to understand, and that is why I preferred having a whole new
>>> policy based entirely on group creation time (KIP-1282)
>>> 
>>> Best,
>>> Chia-Ping
>>> 
>>> Jun Rao via dev <[email protected]> 於 2026年6月16日週二 上午1:08寫道:
>>> 
>>>> Hi, Chia-Ping and Jiunn-Yang,
>>>> 
>>>> Thanks for the reply. I am still trying to understand the value of the new
>>>> configs with the KIP.
>>>> 
>>>> The motivation of the KIP is that a user doesn't want to miss the data if
>>>> the backlog is small. The backlog of the existing partition is easy to
>>>> understand because it relates to retention time. The backlog for the new
>>>> partition is a bit subtle to understand since it depends on the metadata
>>>> refresh delay. To set auto.offset.reset.max.age.ms
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpwnwknH$>,
>>>> the user needs to
>>>> understand the metadata refresh delay on the consumer side and use it to
>>>> set the config.
>>>> 
>>>> Now, let's consider the alternative: setting the same value for the
>>>> existing by_duration policy. The KIP lists three issues with this
>>>> approach.
>>>> 1. It computes the seek target client-side as now() - duration, which
>>>> introduces clock skew across consumers and forces operators to choose
>>>> overly large durations, causing unnecessary reprocessing.
>>>> 2. The target timestamp is recomputed on each retry, so failed
>>>> ListOffsetsRequest retries can shift the target forward and potentially
>>>> miss records produced between attempts.
>>>> 3. It applies uniformly to all partitions without committed offsets, and
>>>> cannot distinguish newly expanded partitions from long-existing partitions
>>>> newly assigned to the group, leading to unnecessary replay.
>>>> 
>>>> Issues 1 and 2 are uncommon and can be mitigated by adding a bit buffer to
>>>> the metadata refresh delay. We could also consider improving the
>>>> implementation. For issue 3, the metadata refresh delay is typically low
>>>> (in the order of minutes with the classic consumer and tens of seconds
>>>> with
>>>> the new consumer). If a user is ok with reading that much backlog for new
>>>> partitions, it seems they will be ok doing the same for existing
>>>> partitions.
>>>> 
>>>> So, instead of introducing a new config, could we just reuse the existing
>>>> config with better documentation and/or implementation?
>>>> 
>>>> Jun
>>>> 
>>>> 
>>>>> On Sat, Jun 13, 2026 at 12:19 AM 黃竣陽 <[email protected]> wrote:
>>>> 
>>>>> Hello Jun,
>>>>> 
>>>>> You're right that group creation time is the more intuitive answer at
>>>>> first glance,
>>>>> the KIP's own motivation talks about partitions that "predate the group"
>>>>> vs partitions
>>>>> "created during group runtime," which directly points to a
>>>> group-lifecycle
>>>>> classifier.
>>>>> I'd like to walk through why we landed on partition age, and the
>>>>> trade-offs we considered.
>>>>> 
>>>>> We evaluated three candidate signals:
>>>>> 
>>>>> 1. `by_duration:5secs`
>>>>> 
>>>>> This covers the metadata blindness window, but has issues the KIP
>>>>> currently documents
>>>>> under "Why not use `by_duration`?":
>>>>> 
>>>>> - Client-side `now() - duration` introduces clock skew across consumers.
>>>>> - `ListOffsets` retries shift the target forward, potentially missing
>>>>> records produced between
>>>>> attempts.
>>>>> - It applies uniformly to all partitions without committed offsets,
>>>>> including pre-existing partitions
>>>>> newly assigned to the group, causing unnecessary replay.
>>>>> 
>>>>> 2. Group creation time as classifier
>>>>> 
>>>>> This works cleanly when the consumer is actively running. Our concern
>>>>> is the idle / late-rejoin case:
>>>>> 
>>>>> T=0:         Group created.
>>>>> T=1..T=100:  Consumer idle (down, disconnected, etc.).
>>>>> T=50:        Partition added during the idle window.
>>>>> T=100:       Consumer resumes.
>>>>> 
>>>>> Under group creation time, the new partition is classified as new
>>>>> (`50 > 0`) and reset to `earliest`, replaying everything from T=50.
>>>>> But during `[T=1, T=100]`, base partitions also accumulated data that
>>>>> the consumer accepts as lost — that is precisely the contract of
>>>>> `auto.offset.reset=latest`. There is no principled reason to treat
>>>>> the new partition differently; both contain backlog accumulated during
>>>>> the same idle window.
>>>>> 
>>>>> This aligns with the "backlog is backlog” principle you raised in
>>>>> the KIP-1282 thread: a `latest` user has tolerated some backlog on
>>>>> every other partition during the same idle period; forcing 0-backlog
>>>>> tolerance only on new partitions would be inconsistent with that
>>>>> tolerance.
>>>>> 
>>>>> 3. Partition age vs threshold
>>>>> 
>>>>> Partition age corresponds to the actual silent data loss window,
>>>>> the gap between partition creation and the consumer’s metadata
>>>>> refresh. Within this window, data loss is genuinely silent: the
>>>>> consumer had no opportunity to know about the partition. Outside this
>>>>> window, missing data reflects either:
>>>>> 
>>>>> - (a) the user’s tolerated cost of running with idle consumers, or
>>>>> - (b) an operational issue to surface via monitoring, not via reset
>>>> policy.
>>>>> 
>>>>> We did not choose partition age because it is more elegant than group
>>>>> creation time — we chose it because its failure mode (requires a
>>>>> threshold) is
>>>>> less invasive than the failure mode of group creation time (overrides
>>>>> user-stated
>>>>> `latest` intent during idle periods).
>>>>> 
>>>>> Best Regards,
>>>>> Jiunn-Yang
>>>>> 
>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年6月13日 上午11:52 寫道:
>>>>>> 
>>>>>> 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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpwnwknH$>
>>>> 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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpwnwknH$>
>>>> 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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>
>>>> .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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.partitions
>>>> as an internal
>>>>>>>>>>>>>>> configuration. auto.offset.reset.new
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>
>>>> .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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.partitions
>>>> and
>>>>>>>>>>>>>>> auto.offset.reset.latest.max.age.ms
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.latest.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfu9JSP4l$>,
>>>> 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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.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
>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>
>>>>> .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
>>>> <https://urldefense.com/v3/__http://metadata.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkflKEb5SK$>
>>>>>>>>>>>>>>> ?
>>>>>>>>>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>> 


Reply via email to