> It inspires me to think about mirror clusters. What if the mirror group is 
> created 'after' the expanded partitions? In this scenario, the new 
> configuration 'max.age.ms' could handle it if users are aware of the 
> migration and set a suitable time interval. Of course, this would require 
> both creation times to be exposed to clients.

Thinking more about the mirror cluster scenario we discussed, I realize it 
introduces significant complexity. Handling it properly would require a 
tolerance time window rather than a strict time interval to account for 
replication lag. To prevent scope creep and keep KIP-1327 focused on its 
primary goal, I think it would be best to defer the multi-cluster/mirroring 
scenario and explore those approaches in a separate KIP

On 2026/06/24 21:29:19 Chia-Ping Tsai wrote:
> hi all,
> 
> > JR3. The KIP exposes the group/partition creation time to the client. I am
> > not sure if there are other use cases for those timestamps. An alternative
> > is to avoid exposing those timestamps to the client. The group coordinator
> > will categorize the partitions using those timestamps and include the
> > categorization in the assigned partitions in GroupHeartbeatResponse.
> 
> It inspires me to think about mirror clusters. What if the mirror group is 
> created 'after' the expanded partitions? In this scenario, the new 
> configuration 'max.age.ms' could handle it if users are aware of the 
> migration and set a suitable time interval. Of course, this would require 
> both creation times to be exposed to clients.
> 
> Best,
> Chia-Ping
> 
> On 2026/06/24 20:46:16 Jun Rao via dev wrote:
> > Hi, Jiunn-Yang,
> > 
> > Thanks for the updated KIP.
> > 
> > JR2. Share consumer (KIP-932) states: "If the number of partitions is
> > increased for a topic with a subscription in a share group, the SPSO for
> > the newly created share-partitions is initialized to 0 ". However, this
> > part has not been implemented yet. Currently, all partitions without offset
> > follows the strategy given by share.auto.offset.reset. So, we have an
> > opportunity to see if it's better to align this KIP's changes with the
> > share consumer.
> > JR2.1 The first part is whether customizing the offset for new partitions
> > to something other than 0 is useful in the share consumer. It seems that
> > the motivation in this KIP applies to share consumer too.
> > JR2.2 The second part is how new partitions are detected. The mechanism
> > introduced in this KIP seems quite effective. A group coordinator could
> > pick up newly created partitions for an existing topic or newly created
> > topics matching the regex. Those partitions are categorized as new
> > partitions and will follow the strategy given by
> > auto.offset.reset.new.partitions.
> > This makes sense since those partitions typically don't have a large
> > backlog. A consumer could also additionally subscribe to an existing topic
> > in an existing group. Those partitions will be categorized as existing
> > partitions. This also makes sense since those partitions could have a large
> > backlog and it is better to follow the strategy given by auto.offset.reset. 
> > It
> > will be useful to think through whether the logic for categorizing new
> > partitions should also be reused in the share consumer.
> > 
> > JR3. The KIP exposes the group/partition creation time to the client. I am
> > not sure if there are other use cases for those timestamps. An alternative
> > is to avoid exposing those timestamps to the client. The group coordinator
> > will categorize the partitions using those timestamps and include the
> > categorization in the assigned partitions in GroupHeartbeatResponse.
> > 
> > JR4. It would be useful to support this feature on existing groups as well.
> > For example, any partition without a creation timestamp can always be
> > categorized as an existing partition.
> > 
> > Jun
> > 
> > On Wed, Jun 24, 2026 at 6:12 AM 黃竣陽 <[email protected]> wrote:
> > 
> > > Hello Andrew,
> > >
> > > Thanks for your feedback,
> > > >> I've just been re-reading this KIP to ensure that share group support 
> > > >> is
> > > >> not needed. I've discovered that we made a mistake implementing KIP-932
> > > in
> > > >> this area, so we'll rectify that and check whether it's really tight
> > > enough
> > > >> not to require KIP-1327.
> > >
> > > Could you walk us through the specific area where the mistake was found?
> > > That would
> > > help us assess whether it naturally fits within the scope of KIP-1327 or
> > > should be addressed
> > > separately.
> > >
> > > AS1 I have updated the KIP
> > >
> > > Best Regards,
> > > Jiunn-Yang
> > >
> > > > Chia-Ping Tsai <[email protected]> 於 2026年6月24日 晚上8:49 寫道:
> > > >
> > > > hi Andrew
> > > >
> > > >> I've discovered that we made a mistake implementing KIP-932 in this
> > > area,
> > > > so we'll rectify that and check whether it's really tight enough not to
> > > > require KIP-1327.
> > > >
> > > > Would you mind sharing more details about that? If it's not anything
> > > close
> > > > to NP-hard, we could definitely look into covering it within KIP-1327
> > > >
> > > > Best,
> > > > Chia-Ping
> > > >
> > > >
> > > > Andrew Schofield <[email protected]> 於 2026年6月24日週三 下午7:49寫道:
> > > >
> > > >> Hi Jiunn-Yang,
> > > >> I've just been re-reading this KIP to ensure that share group support 
> > > >> is
> > > >> not needed. I've discovered that we made a mistake implementing KIP-932
> > > in
> > > >> this area, so we'll rectify that and check whether it's really tight
> > > enough
> > > >> not to require KIP-1327.
> > > >>
> > > >> One trivial comments for consistency.
> > > >>
> > > >> AS1: In kafka-consumer-groups.sh, unknown column data is represented by
> > > >> "-", not "N/A". In kafka-topics.sh, we do use "N/A".
> > > >>
> > > >> Thanks,
> > > >> Andrew
> > > >>
> > > >> On 2026/06/23 23:23:38 黃竣陽 wrote:
> > > >>> Hi all,
> > > >>>
> > > >>> Manually bumping this thread.
> > > >>>
> > > >>> Best Regards,
> > > >>> Jiunn-Yang
> > > >>>
> > > >>>> 黃竣陽 <[email protected]> 於 2026年6月17日 晚上9:17 寫道:
> > > >>>>
> > > >>>> 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