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