Hello chia,

Thanks for the feedback, I have updated the KIP.

Best Regards,
Jiunn-Yang

> Chia-Ping Tsai <[email protected]> 於 2026年6月17日 凌晨12:47 寫道:
> 
> hi Jiunn-Yang
> 
>> When the config is set on a cluster that has not yet been upgraded... 
>> classification cannot occur... the consumer falls back to the base 
>> auto.offset.reset for the affected partitions. No exception is thrown, and 
>> no operational disruption results.
> 
> Existing group can't take advantage of this excellent new configuration. 
> Allowing users to modify the group creation time might be overkill. Instead, 
> we could print a useful warning message to guide users. For example, we can 
> suggest that they re-create the group with their existing committed offsets
> 
>> Protocol changes
> 
> Would you mind listing those RPC changes in a table format?
> 
>> The full interaction matrix between the base policy and the new-partition 
>> policy is:
> 
> Please add a filed to describe the target scenario when using these policies
> 
> Best,
> Chia-Ping
> 
> 
> On 2026/06/16 16:14:49 黃竣陽 wrote:
>> 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