Hi,
I'd like to confirm what is happening with this KIP for AK 4.4. I think the 
answer is that we've decided to improve the docs (I see a PR) and leave it at 
that for now. Do I understand correctly?

Thanks,
Andrew

On 2026/07/08 01:32:41 Chia-Ping Tsai wrote:
> hi all,
> 
> While I agree we shouldn't surprise the majority of users, relying solely on 
> documentation means some users will still fall into this trap. Realizing this 
> limitation only when data is silently lost during a partition expansion is a 
> truly frustrating experience.
> 
> Since we've reached the KIP freeze for 4.4.0, I recommend we focus on 
> updating the docs first.
> 
> We can put this KIP on hold for now and revisit it after Community Over Code. 
> IIRC, Jiunn-Yang is going to share this specific issue at the event with 
> other Kafka users and providers. Hopefully, we can gather some fresh 
> perspectives and inspiration from the community there.
> 
> Best,
> Chia-Ping
> 
> On 2026/07/07 21:38:22 Jun Rao via dev wrote:
> > Hi, Jiunn-Yang,
> > 
> > Thanks for the reply.
> > 
> > Changing the default value only makes sense if it benefits most users.
> > Most users
> > probably never increase the number of partitions. Changing the default
> > config value gives them no benefit and only introduces a probably
> > surprising behavior
> > change.
> > 
> > Jun
> > 
> > On Tue, Jul 7, 2026 at 1:22 PM Chia-Ping Tsai <[email protected]> wrote:
> > 
> > > hi Jiunn
> > >
> > > +1 to Approach A :)
> > >
> > > Best,
> > > Chia-Ping
> > >
> > > On 2026/07/07 11:55:14 黃竣陽 wrote:
> > > > Hi Jun, Chia-Ping,
> > > >
> > > > I'd like to first explain why I believe changing the default is
> > > worthwhile.
> > > >
> > > > Documentation can only help users who already know about the problem.
> > > > Because the failure mode is silent, most users discover it only after
> > > data has
> > > > already been missed. A safer default such as by_duration:PT5S protects
> > > users
> > > > automatically, without requiring prior awareness of the issue.
> > > >
> > > > Given that, the question is not whether the issue exists, but how best
> > > to introduce
> > > > a safer default.
> > > >
> > > > Approach A — Follow a deprecation cycle and land the change in 5.0
> > > > - Keep the current default (`latest`) in upcoming 4.x releases, but emit
> > > a warning that
> > > > the default will change to `by_duration:PT5S` in 5.0 and explain how
> > > users can retain
> > > > the current behavior explicitly.
> > > > - Change the default to `by_duration:PT5S` in 5.0.
> > > > - Update shell tools (for example, the console consumer) to explicitly
> > > use `latest`, preserving
> > > > the expected "show only new messages" behavior.
> > > >
> > > > Approach B — Change the default in a 4.4 minor release
> > > > - Change the default to `by_duration:PT5S` in a 4.x minor release.
> > > > - Leave shell tools unchanged.
> > > > - Emit a warning explaining the change and how users can explicitly
> > > restore `latest`.
> > > >
> > > > I favor Approach B:
> > > >
> > > > Silent data loss during partition expansion is a correctness issue, not
> > > a usability issue.
> > > > Delaying the safer default until 5.0 leaves users relying on the
> > > implicit default exposed unnecessarily.
> > > > Users who need latest can simply pin it explicitly.
> > > > I don't think shell tools need special handling. by_duration:PT5S only
> > > replays a few seconds of data,
> > > > which is negligible in practice and preferable to silently missing
> > > records. Keeping the behavior consistent
> > > > is simpler.
> > > >
> > > > Best Regards,
> > > > Jiunn-Yang
> > > >
> > > > > Jun Rao via dev <[email protected]> 於 2026年7月7日 清晨5:49 寫道:
> > > > >
> > > > > Hi, Chia-Ping,
> > > > >
> > > > > I am not sure that we need an out-of-the-box solution. The proposal in
> > > the
> > > > > KIP is also not out-of-the-box and requires users to opt-in.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Jun
> > > > >
> > > > > On Mon, Jul 6, 2026 at 11:34 AM Chia-Ping Tsai <[email protected]>
> > > wrote:
> > > > >
> > > > >> hi Jun
> > > > >>
> > > > >> Yes, updating the docs requires minimal changes to the codebase, but
> > > it is
> > > > >> not an out-of-the-box solution. From my perspective, this issue can 
> > > > >> be
> > > > >> addressed by setting the console consumer's policy back to latest.
> > > > >>
> > > > >> Let's see what Jiunn thinks
> > > > >>
> > > > >> Best,
> > > > >> Chia-Ping
> > > > >>
> > > > >> On 2026/07/06 15:59:37 Jun Rao via dev wrote:
> > > > >>> Hi, Chia-Ping,
> > > > >>>
> > > > >>> One potential downside of changing the default is that some existing
> > > > >> tools
> > > > >>> (e.g. console consumer) may depend on this behavior. For example, a
> > > user
> > > > >>> testing the system may expect to see only new messages and could be
> > > > >>> surprised by the change. Another option is to leave the default
> > > > >> unchanged,
> > > > >>> but document clearly how to prevent losing messages on new 
> > > > >>> partitions
> > > > >>> through by_duration. The users can then make the corresponding 
> > > > >>> config
> > > > >>> changes if needed.
> > > > >>>
> > > > >>> Thanks,
> > > > >>>
> > > > >>> Jun
> > > > >>>
> > > > >>> On Wed, Jul 1, 2026 at 9:39 AM Chia-Ping Tsai <[email protected]>
> > > > >> wrote:
> > > > >>>
> > > > >>>> Hi Jun,
> > > > >>>>
> > > > >>>> Thanks for the feedback. I agree with your conclusion. It would be
> > > > >> better
> > > > >>>> to "make haste" with a new KIP to address this. We can focus the
> > > > >> discussion
> > > > >>>> on the following points:
> > > > >>>>
> > > > >>>> 1) Should we change the default reset policy to by_duration for all
> > > > >>>> consumers?
> > > > >>>> 2) What is the optimal duration to prevent data loss while avoiding
> > > > >> large
> > > > >>>> backlogs? Note that the classic consumer has a 3-second heartbeat
> > > > >> interval,
> > > > >>>> whereas the async consumer uses 5 seconds.
> > > > >>>> 3) What are the potential side effects of replacing latest with
> > > > >>>> by_duration as the default behavior?
> > > > >>>>
> > > > >>>> Best,
> > > > >>>> Chia-Ping
> > > > >>>>
> > > > >>>> On 2026/06/30 20:39:24 Jun Rao via dev wrote:
> > > > >>>>> Hi, Chia-Ping,
> > > > >>>>>
> > > > >>>>> I agree that using by_duration with a value of 5s to 10s addresses
> > > > >> most
> > > > >>>>> common issues with expanded partitions, given the default
> > > > >>>>> heartbeat.interval.ms is 3 seconds. We can consider setting that
> > > as
> > > > >> the
> > > > >>>> new
> > > > >>>>> default. The current proposal may address some other rarer cases,
> > > > >> but it
> > > > >>>>> feels a bit like over engineering.
> > > > >>>>>
> > > > >>>>> Thanks,
> > > > >>>>>
> > > > >>>>> Jun
> > > > >>>>>
> > > > >>>>> On Tue, Jun 30, 2026 at 5:58 AM Chia-Ping Tsai <
> > > [email protected]>
> > > > >>>> wrote:
> > > > >>>>>
> > > > >>>>>> - Short durations fail during extended downtimes, leading to the
> > > > >> exact
> > > > >>>>>> silent data
> > > > >>>>>> loss this KIP aims to prevent.
> > > > >>>>>>
> > > > >>>>>> Losing the records produced to expanded partitions during a
> > > > >> downtime is
> > > > >>>>>> actually the expected behavior for the latest policy. This is
> > > > >> exactly
> > > > >>>> why,
> > > > >>>>>> in the current KIP proposal, we prefer by_duration over earliest
> > > > >> for
> > > > >>>> the
> > > > >>>>>> expanded partitions—we want to avoid forcing users to consume a
> > > > >> massive
> > > > >>>>>> accumulated backlog just because a partition is technically 
> > > > >>>>>> "new".
> > > > >>>>>>
> > > > >>>>>> To quote my previous comment from May 15:
> > > > >>>>>> "...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."
> > > > >>>>>>
> > > > >>>>>> On 2026/06/30 12:12:47 黃竣陽 wrote:
> > > > >>>>>>> Hello all,
> > > > >>>>>>>
> > > > >>>>>>> The metadata blindness and consumer downtime windows are
> > > > >> inherently
> > > > >>>>>>> unpredictable, making a fixed by_duration approach unviable. No
> > > > >>>> static
> > > > >>>>>>> duration can accommodate both extremes:
> > > > >>>>>>>
> > > > >>>>>>> - Short durations fail during extended downtimes, leading to the
> > > > >>>> exact
> > > > >>>>>> silent data
> > > > >>>>>>> loss this KIP aims to prevent.
> > > > >>>>>>> - Long durations (calibrated for worst-case scenarios) cause
> > > > >> routine
> > > > >>>>>> restarts to
> > > > >>>>>>> trigger unnecessary mass replays, undermining the latest offset
> > > > >> reset
> > > > >>>>>> policy.
> > > > >>>>>>>
> > > > >>>>>>> This is why the proposed solution uses creation time. It
> > > > >> provides a
> > > > >>>>>> discrete,
> > > > >>>>>>> deterministic signal—verifying whether a partition is actually
> > > > >> newer
> > > > >>>>>> than the group,
> > > > >>>>>>> rather than relying on an arbitrary time window that has no
> > > > >>>> correlation
> > > > >>>>>> with the consumer’s
> > > > >>>>>>> actual downtime.
> > > > >>>>>>>
> > > > >>>>>>> Best Regards,
> > > > >>>>>>> Jiunn-Yang
> > > > >>>>>>>
> > > > >>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年6月30日 下午3:05 寫道:
> > > > >>>>>>>>
> > > > >>>>>>>> Hi all,
> > > > >>>>>>>>
> > > > >>>>>>>> I'd like to revisit Jun previous comment about using
> > > > >>>> by_duration=5s. I
> > > > >>>>>> realize now that having a small backlog is actually an acceptable
> > > > >>>>>> trade-off, especially since the latest policy inherently brings a
> > > > >> tiny
> > > > >>>>>> backlog to starting consumers anyway due to the time gap between
> > > > >>>> fetching
> > > > >>>>>> the offset and actually consuming.
> > > > >>>>>>>>
> > > > >>>>>>>> If we bring the simple by_duration=5s solution back to the
> > > > >> KIP, I'd
> > > > >>>>>> like to discuss a further step: Should we just change the default
> > > > >>>> policy
> > > > >>>>>> from latest to by_duration=5s specifically for the new consumer
> > > and
> > > > >>>> share
> > > > >>>>>> consumer?
> > > > >>>>>>>>
> > > > >>>>>>>> Best,
> > > > >>>>>>>> Chia-Ping
> > > > >>>>>>>>
> > > > >>>>>>>> On 2026/06/15 17:39:19 Chia-Ping Tsai 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 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, 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 still
> > > > >> feels
> > > > >>>>>> weird to
> > > > >>>>>>>>>>> me.
> > > > >>>>>>>>>>>>> It
> > > > >>>>>>>>>>>>> categorizes partitions as new or existing based on the
> > > > >>>> partition
> > > > >>>>>>>>>>> creation
> > > > >>>>>>>>>>>>> time. Intuitively, the categorization should be based on
> > > > >> the
> > > > >>>> group
> > > > >>>>>>>>>>> creation
> > > > >>>>>>>>>>>>> time: all partitions existing when the group is created
> > > > >> are
> > > > >>>>>> existing
> > > > >>>>>>>>>> and
> > > > >>>>>>>>>>>>> all partitions created after the group creation are new
> > > > >>>>>> partitions.
> > > > >>>>>>>>>>>>>
> > > > >>>>>>>>>>>>> Jun
> > > > >>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>
> > > > >>>>>>>>>>>>> On Tue, Jun 9, 2026 at 8:51 AM 黃竣陽 <[email protected]>
> > > > >>>> wrote:
> > > > >>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>> Hi all,
> > > > >>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>> Manually bumping this thread. If there is no further
> > > > >>>>>>>>>>>>>> discussion, I will close the vote.
> > > > >>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>> 黃竣陽 <[email protected]> 於 2026年6月1日 晚上7:16 寫道:
> > > > >>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>> Hello Jian,
> > > > >>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>> Thanks for your feedback,
> > > > >>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>> Agreed, partition expansion is a common operational
> > > > >> task,
> > > > >>>> not an
> > > > >>>>>>>>>> edge
> > > > >>>>>>>>>>>>>>> case. I've updated the Motivation section accordingly.
> > > > >>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>> jian fu <[email protected]> 於 2026年6月1日 下午5:49 寫道:
> > > > >>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>> Hi Jiunn-Yang:
> > > > >>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>> Thanks for the KIP. I think it would be useful to
> > > > >> clarify
> > > > >>>> that
> > > > >>>>>> this
> > > > >>>>>>>>>>>>> is a
> > > > >>>>>>>>>>>>>>>> common scenario rather than an edge case, which further
> > > > >>>>>>>>>> demonstrates
> > > > >>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>> need for this optimization. For example:
> > > > >>>>>>>>>>>>>>>> A partition expansion is a common operational task in
> > > > >>>> Kafka: To
> > > > >>>>>>>>>>>>> balance
> > > > >>>>>>>>>>>>>>>> resource utilization and cost, topics are typically
> > > > >> created
> > > > >>>>>> with a
> > > > >>>>>>>>>>>>>> moderate
> > > > >>>>>>>>>>>>>>>> default partition count. However, as traffic grows over
> > > > >>>> time,
> > > > >>>>>> it is
> > > > >>>>>>>>>>>>>> often
> > > > >>>>>>>>>>>>>>>> necessary to increase the number of partitions to
> > > > >>>> accommodate
> > > > >>>>>> the
> > > > >>>>>>>>>>>>> higher
> > > > >>>>>>>>>>>>>>>> workload.
> > > > >>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>> Regards
> > > > >>>>>>>>>>>>>>>> Jian
> > > > >>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>> 黃竣陽 <[email protected]> 于2026年5月30日周六 22:31写道:
> > > > >>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>> Hello chia,
> > > > >>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>> Thanks for the comments, I have updated the KIP!
> > > > >>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年5月30日
> > > > >> 晚上8:29
> > > > >>>> 寫道:
> > > > >>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>> Hi Jiunn-Yang,
> > > > >>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>> Would you mind removing the terms "hot" and "cold"
> > > > >> when
> > > > >>>>>>>>>> describing
> > > > >>>>>>>>>>>>>>>>>> partitions in the KIP? I understand you are using
> > > > >> them to
> > > > >>>>>>>>>> describe
> > > > >>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>> "freshness" or the users' need for the records, but
> > > > >>>> applying
> > > > >>>>>>>>>> these
> > > > >>>>>>>>>>>>>> terms
> > > > >>>>>>>>>>>>>>>>> to
> > > > >>>>>>>>>>>>>>>>>> the partition itself feels a bit unnatural.
> > > > >>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>> After all, in this scenario, users don't really care
> > > > >>>> whether
> > > > >>>>>> a
> > > > >>>>>>>>>>>>>> partition
> > > > >>>>>>>>>>>>>>>>> is
> > > > >>>>>>>>>>>>>>>>>> newly expanded or not. Their only expectation is that
> > > > >>>> they
> > > > >>>>>> won't
> > > > >>>>>>>>>>>>>> silently
> > > > >>>>>>>>>>>>>>>>>> lose any live records produced to the topic during
> > > > >> their
> > > > >>>>>> active
> > > > >>>>>>>>>>>>>>>>> consumption.
> > > > >>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>> Best, Chia-Ping
> > > > >>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>> 黃竣陽 <[email protected]> 於 2026年5月30日週六 下午12:30寫道:
> > > > >>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>> Hello Jun,
> > > > >>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>> Thanks for the feedback, I have updated the KIP
> > > > >>>> motivation
> > > > >>>>>>>>>>> section.
> > > > >>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> Jun Rao via dev <[email protected]> 於
> > > > >> 2026年5月30日
> > > > >>>>>> 凌晨1:12 寫道:
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> Hi, Jiunn-Yang,
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> Thanks for the reply. I think we need a stronger
> > > > >>>>>> motivation for
> > > > >>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>> KIP.
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> The KIP says "The core insight is that not all
> > > > >>>> partitions
> > > > >>>>>>>>>> without
> > > > >>>>>>>>>>>>> a
> > > > >>>>>>>>>>>>>>>>>>>> committed offset are the same. A newly expanded
> > > > >>>> partition
> > > > >>>>>> (hot)
> > > > >>>>>>>>>>> is
> > > > >>>>>>>>>>>>>>>>>>>> fundamentally different from a partition the
> > > > >> consumer
> > > > >>>> has
> > > > >>>>>> never
> > > > >>>>>>>>>>>>> seen
> > > > >>>>>>>>>>>>>>>>>>>> because it predates the group (cold)." Why is the
> > > > >> hot
> > > > >>>>>> partition
> > > > >>>>>>>>>>>>>>>>>>>> fundamentally different from the cold?
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> The KIP says "The existing by_duration policy is
> > > > >> also
> > > > >>>>>>>>>>> insufficient
> > > > >>>>>>>>>>>>>>>>>>> because:
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> - The calculated seek time (now() - duration)
> > > > >> varies
> > > > >>>> across
> > > > >>>>>>>>>> nodes
> > > > >>>>>>>>>>>>>> due
> > > > >>>>>>>>>>>>>>>>>>> to
> > > > >>>>>>>>>>>>>>>>>>>> clock skew. To be safe, users must set an overly
> > > > >> large
> > > > >>>>>>>>>> duration,
> > > > >>>>>>>>>>>>>>>>>>> causing
> > > > >>>>>>>>>>>>>>>>>>>> unnecessary reprocessing.
> > > > >>>>>>>>>>>>>>>>>>>> - On network errors, the client recalculates the
> > > > >> seek
> > > > >>>> time
> > > > >>>>>> on
> > > > >>>>>>>>>>>>> retry,
> > > > >>>>>>>>>>>>>>>>>>>> shifting the target timestamp forward and risking
> > > > >> data
> > > > >>>>>> loss."
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> However, both of these situations are rare. If
> > > > >> these
> > > > >>>> issues
> > > > >>>>>>>>>>>>> persist,
> > > > >>>>>>>>>>>>>>>>> more
> > > > >>>>>>>>>>>>>>>>>>>> severe problems likely exist elsewhere. Rare
> > > > >> situations
> > > > >>>>>> don't
> > > > >>>>>>>>>>>>> need a
> > > > >>>>>>>>>>>>>>>>>>> common
> > > > >>>>>>>>>>>>>>>>>>>> solution. If users care about those rare
> > > > >> situations,
> > > > >>>> they
> > > > >>>>>> can
> > > > >>>>>>>>>>>>>> implement
> > > > >>>>>>>>>>>>>>>>>>>> customized logic using
> > > > >>>>>>>>>>>>>>>>> ConsumerRebalanceListener.onPartitionsAssigned().
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> Jun
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>> On Sun, May 17, 2026 at 6:50 AM 黃竣陽 <
> > > > >>>> [email protected]>
> > > > >>>>>>>>>> wrote:
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>> Hello chia,
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>> Thanks for the feedback,
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>> If the creation time exists, the returned value
> > > > >>>> should
> > > > >>>>>> always
> > > > >>>>>>>>>>> be
> > > > >>>>>>>>>>>>>>>>>>> greater
> > > > >>>>>>>>>>>>>>>>>>>>> than or equal to zero, right?
> > > > >>>>>>>>>>>>>>>>>>>>> I have explicitly mentioned this in the KIP.
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>> New  Old (MetadataResponse v0–13)    positive
> > > > >>>>  any
> > > > >>>>>>>>>>>>>> field
> > > > >>>>>>>>>>>>>>>>>>>>> absent    UnsupportedVersionException
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>> The earliest point at which we can detect the
> > > > >> version
> > > > >>>>>> mismatch
> > > > >>>>>>>>>>> is
> > > > >>>>>>>>>>>>>>>>> during
> > > > >>>>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>> first metadata fetch after assignment, which
> > > > >> occurs
> > > > >>>> inside
> > > > >>>>>>>>>>>>> poll().
> > > > >>>>>>>>>>>>>>>>>>>>> Therefore, the
> > > > >>>>>>>>>>>>>>>>>>>>> user would encounter an
> > > > >> UnsupportedVersionException
> > > > >>>> from
> > > > >>>>>>>>>> poll().
> > > > >>>>>>>>>>>>>> I’ll
> > > > >>>>>>>>>>>>>>>>>>>>> clarify this in the KIP.
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於
> > > > >> 2026年5月17日
> > > > >>>>>> 下午4:50 寫道:
> > > > >>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>> hi Jiunn
> > > > >>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>> PartitionAgeMs (int64, default -1): The age of
> > > > >> this
> > > > >>>>>>>>>> partition
> > > > >>>>>>>>>>>>> in
> > > > >>>>>>>>>>>>>>>>>>>>> milliseconds, computed server-side by the broker
> > > > >> as
> > > > >>>>>>>>>>>>>>>>> broker_current_time
> > > > >>>>>>>>>>>>>>>>>>> -
> > > > >>>>>>>>>>>>>>>>>>>>> partition_creation_time. Returns -1 if the broker
> > > > >>>> does not
> > > > >>>>>>>>>>>>> support
> > > > >>>>>>>>>>>>>>>>> this
> > > > >>>>>>>>>>>>>>>>>>>>> feature or the partition creation time is unknown.
> > > > >>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>> If the creation time exists, the returned value
> > > > >>>> should
> > > > >>>>>> always
> > > > >>>>>>>>>>> be
> > > > >>>>>>>>>>>>>>>>>>> greater
> > > > >>>>>>>>>>>>>>>>>>>>> than or equal to zero, right?
> > > > >>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>> New  Old (MetadataResponse v0–13)    positive
> > > > >>>>  any
> > > > >>>>>>>>>>>>>> field
> > > > >>>>>>>>>>>>>>>>>>>>> absent    UnsupportedVersionException
> > > > >>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>> Will user encounter UnsupportedVersionException
> > > > >> when
> > > > >>>>>> calling
> > > > >>>>>>>>>>>>>>>>> `poll()`?
> > > > >>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>> Best,
> > > > >>>>>>>>>>>>>>>>>>>>>> Chia-Ping
> > > > >>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>> On 2026/05/16 04:30:49 黃竣陽 wrote:
> > > > >>>>>>>>>>>>>>>>>>>>>>> Hello Jun, chia,
> > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>> I've updated KIP-1327 with a design change
> > > > >> based on
> > > > >>>> the
> > > > >>>>>>>>>>>>>> discussion
> > > > >>>>>>>>>>>>>>>>>>>>>>> feedback.
> > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>> The updated design decouples the new-partition
> > > > >> reset
> > > > >>>>>>>>>> behavior
> > > > >>>>>>>>>>>>>> from
> > > > >>>>>>>>>>>>>>>>>>>>>>> the base auto.offset.reset policy:
> > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>> - auto.offset.reset.max.age.ms now applies to
> > > > >> all
> > > > >>>>>>>>>>>>>> auto.offset.reset
> > > > >>>>>>>>>>>>>>>>>>>>> values
> > > > >>>>>>>>>>>>>>>>>>>>>>> (latest, earliest, by_duration, none).
> > > > >>>>>>>>>>>>>>>>>>>>>>> - For new ("hot") partitions, the consumer
> > > > >> resets to
> > > > >>>>>>>>>>>>>>>>>>>>> auto.offset.reset.new.partitions
> > > > >>>>>>>>>>>>>>>>>>>>>>> config setting
> > > > >>>>>>>>>>>>>>>>>>>>>>> - For existing ("cold") partitions, the base
> > > > >>>>>>>>>> auto.offset.reset
> > > > >>>>>>>>>>>>>>>>> policy
> > > > >>>>>>>>>>>>>>>>>>>>> continues
> > > > >>>>>>>>>>>>>>>>>>>>>>> to apply unchanged.
> > > > >>>>>>>>>>>>>>>>>>>>>>> - The new-partition reset behavior is
> > > > >> represented
> > > > >>>> by a
> > > > >>>>>>>>>>> separate
> > > > >>>>>>>>>>>>>>>>>>>>> internal config
> > > > >>>>>>>>>>>>>>>>>>>>>>> (auto.offset.reset.new.partitions, currently
> > > > >> fixed
> > > > >>>> to
> > > > >>>>>>>>>>>>> earliest).
> > > > >>>>>>>>>>>>>>>>> This
> > > > >>>>>>>>>>>>>>>>>>>>> decoupled design makes
> > > > >>>>>>>>>>>>>>>>>>>>>>> it straightforward to promote the behavior to a
> > > > >>>> public
> > > > >>>>>>>>>>>>>> user-facing
> > > > >>>>>>>>>>>>>>>>>>>>> configuration in a future KIP.
> > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於
> > > > >> 2026年5月16日
> > > > >>>>>> 清晨7:46
> > > > >>>>>>>>>> 寫道:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>> hi Jun
> > > > >>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>> I see what you mean now. The proposal from me
> > > > >> is
> > > > >>>> listed
> > > > >>>>>>>>>>> below:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>> 1) Add auto.offset.reset.new.partitions with a
> > > > >>>> default
> > > > >>>>>>>>>> value
> > > > >>>>>>>>>>>>> of
> > > > >>>>>>>>>>>>>>>>>>>>> earliest. It fixes the data loss from both
> > > > >>>> by_duration and
> > > > >>>>>>>>>>>>> latest,
> > > > >>>>>>>>>>>>>> and
> > > > >>>>>>>>>>>>>>>>>>> it
> > > > >>>>>>>>>>>>>>>>>>>>> does not change the logic of
> > > > >>>> auto.offset.reset=earliest.
> > > > >>>>>>>>>>>>>>>>>>>>>>>> 2) Mark auto.offset.reset.new.partitions as an
> > > > >>>>>> internal
> > > > >>>>>>>>>>>>>>>>>>>>> configuration. auto.offset.reset.new
> > > > >>>> .partitions=earliest
> > > > >>>>>>>>>>> already
> > > > >>>>>>>>>>>>>>>>>>>>> addresses the issue, and we can discuss the use
> > > > >> cases
> > > > >>>> of
> > > > >>>>>> other
> > > > >>>>>>>>>>>>>> values
> > > > >>>>>>>>>>>>>>>>>>> in a
> > > > >>>>>>>>>>>>>>>>>>>>> separate KIP.
> > > > >>>>>>>>>>>>>>>>>>>>>>>> 3) Both configs, auto.offset.reset.new
> > > > >> .partitions
> > > > >>>> and
> > > > >>>>>>>>>>>>>>>>>>>>> auto.offset.reset.latest.max.age.ms, will be
> > > > >> applied
> > > > >>>> to
> > > > >>>>>> all
> > > > >>>>>>>>>> for
> > > > >>>>>>>>>>>>>>>>>>>>> consistency.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>> WDYT?
> > > > >>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>> On 2026/05/15 20:53:20 Jun Rao via dev wrote:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> Hi, Chia-Ping,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the reply.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> 1. In the motivation section, the KIP says
> > > > >> "When a
> > > > >>>>>> Kafka
> > > > >>>>>>>>>>>>> topic
> > > > >>>>>>>>>>>>>> is
> > > > >>>>>>>>>>>>>>>>>>>>> expanded
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> with new partitions, consumers using the
> > > > >> latest
> > > > >>>> auto
> > > > >>>>>>>>>> offset
> > > > >>>>>>>>>>>>>> reset
> > > > >>>>>>>>>>>>>>>>>>>>> policy
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> will silently miss all records produced to
> > > > >> those
> > > > >>>>>>>>>> partitions
> > > > >>>>>>>>>>>>>> before
> > > > >>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> consumer discovers them.". If a user sets
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> auto.offset.reset=by_duration=1sec, the same
> > > > >>>> record
> > > > >>>>>> loss
> > > > >>>>>>>>>>>>> issue
> > > > >>>>>>>>>>>>>>>>> could
> > > > >>>>>>>>>>>>>>>>>>>>> also
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> happen, right?
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> 2. I was thinking auto.offset.reset.new
> > > > >>>> .partitions
> > > > >>>>>> will
> > > > >>>>>>>>>>> take
> > > > >>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>> same
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> values as auto.offset.reset. So a user could
> > > > >> set
> > > > >>>> it
> > > > >>>>>>>>>>>>>> by_duration if
> > > > >>>>>>>>>>>>>>>>>>>>> needed.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> Jun
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>> On Thu, May 14, 2026 at 4:06 PM Chia-Ping
> > > > >> Tsai <
> > > > >>>>>>>>>>>>>>>>> [email protected]
> > > > >>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>> wrote:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> hi Jun
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the feedback. I might be missing
> > > > >>>> something
> > > > >>>>>>>>>>>>>> important
> > > > >>>>>>>>>>>>>>>>>>> from
> > > > >>>>>>>>>>>>>>>>>>>>> your
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> suggestion, so please bear with me as I try
> > > > >> to
> > > > >>>>>> clarify
> > > > >>>>>>>>>> with
> > > > >>>>>>>>>>>>> a
> > > > >>>>>>>>>>>>>> few
> > > > >>>>>>>>>>>>>>>>>>>>> questions:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> 1. Is there a strong use case for extending
> > > > >> this
> > > > >>>>>> logic to
> > > > >>>>>>>>>>>>>> other
> > > > >>>>>>>>>>>>>>>>>>> reset
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> policies? Unlike latest, policies like
> > > > >> earliest
> > > > >>>> or
> > > > >>>>>>>>>>>>> by_duration
> > > > >>>>>>>>>>>>>>>>>>> don't
> > > > >>>>>>>>>>>>>>>>>>>>> seem
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> to suffer from the same silent data loss
> > > > >> issue
> > > > >>>> when a
> > > > >>>>>>>>>>>>>> partition
> > > > >>>>>>>>>>>>>>>>> is
> > > > >>>>>>>>>>>>>>>>>>>>> expanded.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> 2. What values would we expect users to
> > > > >>>> configure for
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> auto.offset.reset.new.partitions? If they
> > > > >> set
> > > > >>>> it to
> > > > >>>>>>>>>>>>> earliest
> > > > >>>>>>>>>>>>>> or
> > > > >>>>>>>>>>>>>>>>>>>>> latest,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> we might run into the exact same edge cases.
> > > > >> For
> > > > >>>>>> example,
> > > > >>>>>>>>>>>>> if a
> > > > >>>>>>>>>>>>>>>>>>>>> consumer is
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> offline for a while and a new partition is
> > > > >>>> created
> > > > >>>>>> during
> > > > >>>>>>>>>>>>> that
> > > > >>>>>>>>>>>>>>>>>>>>> downtime,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> the user might actually want to skip to
> > > > >> latest
> > > > >>>> when
> > > > >>>>>>>>>>>>> resuming,
> > > > >>>>>>>>>>>>>>>>>>> rather
> > > > >>>>>>>>>>>>>>>>>>>>> than
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> reading from earliest just because the
> > > > >> partition
> > > > >>>> is
> > > > >>>>>>>>>>>>>> technically
> > > > >>>>>>>>>>>>>>>>>>>>> "new" to
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> the group.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> This is exactly why we opted for introducing
> > > > >> a
> > > > >>>>>> max.age
> > > > >>>>>>>>>>>>>> threshold.
> > > > >>>>>>>>>>>>>>>>>>> It
> > > > >>>>>>>>>>>>>>>>>>>>> gives
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> users a time-bound way to define what is
> > > > >>>> genuinely
> > > > >>>>>>>>>>> "hot/new"
> > > > >>>>>>>>>>>>>> and
> > > > >>>>>>>>>>>>>>>>>>>>> what is
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> just an old partition they haven't seen yet.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> Best,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> On 2026/05/14 20:48:09 Jun Rao via dev wrote:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> Hi, Jiunn-Yang,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> I find auto.offset.reset.latest.max.age a
> > > > >> bit
> > > > >>>>>> weird. It
> > > > >>>>>>>>>>>>> only
> > > > >>>>>>>>>>>>>>>>>>>>> applies when
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> auto.offset.reset is latest. However, it
> > > > >> seems
> > > > >>>> that
> > > > >>>>>> the
> > > > >>>>>>>>>>>>>>>>> motivation
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> equally
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> applies when auto.offset.reset is set to
> > > > >> other
> > > > >>>>>> values
> > > > >>>>>>>>>> like
> > > > >>>>>>>>>>>>>>>>>>>>> by_duration.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> The
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> intention is that we want to have a separate
> > > > >>>> way to
> > > > >>>>>>>>>>> control
> > > > >>>>>>>>>>>>>>>>> newly
> > > > >>>>>>>>>>>>>>>>>>>>> created
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> partitions vs existing partitions when the
> > > > >> group
> > > > >>>>>> starts.
> > > > >>>>>>>>>>>>>> Have we
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> considered
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> adding a new config like
> > > > >> auto.offset.reset.new
> > > > >>>>>>>>>>> .partitions?
> > > > >>>>>>>>>>>>>> If
> > > > >>>>>>>>>>>>>>>>>>> this
> > > > >>>>>>>>>>>>>>>>>>>>> new
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> config is not set, the offset reset policy
> > > > >>>> defaults
> > > > >>>>>> to
> > > > >>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>> policy
> > > > >>>>>>>>>>>>>>>>>>>>> used
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> for
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> existing partitions. The user could set it
> > > > >>>>>> explicitly to
> > > > >>>>>>>>>>>>>>>>> customize
> > > > >>>>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> behavior for new partitions.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> Jun
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>> On Thu, May 7, 2026 at 5:07 AM 黃竣陽 <
> > > > >>>>>> [email protected]>
> > > > >>>>>>>>>>>>>> wrote:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi all,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> I’d like to manually bump this thread.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 黃竣陽 <[email protected]> 於 2026年5月1日
> > > > >> 晚上10:37
> > > > >>>> 寫道:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hello all,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the feedback.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> DJ01/DJ02:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> MetadataResponse bumps from v13 to v14.
> > > > >> The
> > > > >>>>>>>>>>>>>> PartitionMetadata
> > > > >>>>>>>>>>>>>>>>>>>>> struct
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> gains a new
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> field PartitionAgeMs (int64, default -1),
> > > > >>>> computed
> > > > >>>>>>>>>>>>>> server-side
> > > > >>>>>>>>>>>>>>>>>>> by
> > > > >>>>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> broker as
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> broker_current_time -
> > > > >> partition_creation_time.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Also add the consumer heartbeat flow. when
> > > > >>>>>>>>>>>>>> MembershipManager
> > > > >>>>>>>>>>>>>>>>>>>>> detects
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> newly assigned
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> partition, it explicitly invalidates the
> > > > >>>> metadata
> > > > >>>>>> for
> > > > >>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>> affected
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> topic
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> and forces a fresh MetadataRequest
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> before making the offset reset decision,
> > > > >> even
> > > > >>>> if
> > > > >>>>>> the
> > > > >>>>>>>>>>>>> topic
> > > > >>>>>>>>>>>>>> ID
> > > > >>>>>>>>>>>>>>>>> is
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> already
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> in the cache.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> MB0:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> The consumer learns the broker's maximum
> > > > >>>> supported
> > > > >>>>>>>>>>>>>>>>>>>>> MetadataResponse
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> version via the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> ApiVersions negotiation at connection
> > > > >> time.
> > > > >>>> If the
> > > > >>>>>>>>>>>>>> negotiated
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> version is
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> unsupported, the consumer
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> knows the broker does not support
> > > > >>>> PartitionAgeMs
> > > > >>>>>> at
> > > > >>>>>>>>>> all
> > > > >>>>>>>>>>>>> and
> > > > >>>>>>>>>>>>>>>>> can
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> throw an
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> UnsupportedVersionException
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> immediately, rather than silently falling
> > > > >>>> back to
> > > > >>>>>>>>>> latest
> > > > >>>>>>>>>>>>>> and
> > > > >>>>>>>>>>>>>>>>>>>>> risking
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> data loss without any operator-visible
> > > > >> signal.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> MB1/MB2/MB3:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> I have addressed these changes in the KIP.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於
> > > > >>>> 2026年4月29日
> > > > >>>>>>>>>>> 下午4:04
> > > > >>>>>>>>>>>>>> 寫道:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> hi David
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I agree with the direction of moving the
> > > > >>>> 'age'
> > > > >>>>>>>>>>>>> resolution
> > > > >>>>>>>>>>>>>>>>> from
> > > > >>>>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Heartbeat API to the Metadata API to keep
> > > > >> the
> > > > >>>>>> control
> > > > >>>>>>>>>>>>> plane
> > > > >>>>>>>>>>>>>>>>>>> clean.
> > > > >>>>>>>>>>>>>>>>>>>>> The
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> main
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> trade-off, as we noted before, is
> > > > >> introducing
> > > > >>>>>>>>>>> inter-broker
> > > > >>>>>>>>>>>>>>>>> clock
> > > > >>>>>>>>>>>>>>>>>>>>> skew.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> The
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Group Coordinator approach provided a
> > > > >> single
> > > > >>>>>> source of
> > > > >>>>>>>>>>>>> truth
> > > > >>>>>>>>>>>>>>>>> for
> > > > >>>>>>>>>>>>>>>>>>>>> time.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> However, realistically, this time skew
> > > > >>>> should be
> > > > >>>>>>>>>>>>>> negligible.
> > > > >>>>>>>>>>>>>>>>>>>>> Given
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> that
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> the max.age threshold will likely be
> > > > >>>> configured in
> > > > >>>>>>>>>>> minutes
> > > > >>>>>>>>>>>>>> or
> > > > >>>>>>>>>>>>>>>>>>>>> hours, a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> typical NTP skew (in milliseconds) between
> > > > >>>> brokers
> > > > >>>>>>>>>> won't
> > > > >>>>>>>>>>>>>> impact
> > > > >>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> fallback decision.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> David Jacot via dev <
> > > > >> [email protected]>
> > > > >>>> 於
> > > > >>>>>>>>>>>>> 2026年4月29日
> > > > >>>>>>>>>>>>>>>>>>> 下午3:29
> > > > >>>>>>>>>>>>>>>>>>>>> 寫道:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi all,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP!
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sorry, I haven't really followed the
> > > > >>>> previous
> > > > >>>>>>>>>>>>>> conversation
> > > > >>>>>>>>>>>>>>>>>>> but I
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> took a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> quick look at this one.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DJ01: I don't clearly understand the
> > > > >> flow
> > > > >>>> with
> > > > >>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> ConsumerGroupHeartbeat
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> API after reading the KIP. There is a
> > > > >> new
> > > > >>>>>> boolean;
> > > > >>>>>>>>>> the
> > > > >>>>>>>>>>>>>> KIP
> > > > >>>>>>>>>>>>>>>>>>>>> states
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> that
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> partition ages are returned only when
> > > > >> this
> > > > >>>>>> boolean
> > > > >>>>>>>>>> is
> > > > >>>>>>>>>>>>>> set.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> Implicitly,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> this
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means that when the consumer receives a
> > > > >> new
> > > > >>>>>>>>>> partition,
> > > > >>>>>>>>>>>>> it
> > > > >>>>>>>>>>>>>>>>> will
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> issue a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> new
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> HB request with the boolean set to
> > > > >> receive
> > > > >>>> the
> > > > >>>>>> ages.
> > > > >>>>>>>>>>> Is
> > > > >>>>>>>>>>>>>> my
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> understanding
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct? We should perhaps clarify the
> > > > >> flow
> > > > >>>> and
> > > > >>>>>> also
> > > > >>>>>>>>>>>>>> explain
> > > > >>>>>>>>>>>>>>>>>>>>> how it
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> fits
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> into the existing flow (e.g. list
> > > > >> offsets,
> > > > >>>> fetch
> > > > >>>>>>>>>>>>> offsets,
> > > > >>>>>>>>>>>>>>>>>>> etc.).
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DJ02: It my understanding is correct, I
> > > > >>>> wonder
> > > > >>>>>> if
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the ConsumerGroupHeartbeat API is the
> > > > >> right
> > > > >>>>>> place
> > > > >>>>>>>>>> for
> > > > >>>>>>>>>>>>>> this
> > > > >>>>>>>>>>>>>>>>>>> given
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> that
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> a new
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> round trip is done anyway.
> > > > >> Alternatively, it
> > > > >>>>>> could
> > > > >>>>>>>>>>>>> simply
> > > > >>>>>>>>>>>>>>>>>>>>> include
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> metadata. Generally, we should be rather
> > > > >>>>>> cautious
> > > > >>>>>>>>>>> about
> > > > >>>>>>>>>>>>>> not
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> overloading
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the ConsumerGroupHeartbeat API with
> > > > >>>> unrelated
> > > > >>>>>>>>>>> concepts.
> > > > >>>>>>>>>>>>>> The
> > > > >>>>>>>>>>>>>>>>>>> API
> > > > >>>>>>>>>>>>>>>>>>>>> is
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> control plane API for assigning or
> > > > >> revoking
> > > > >>>>>>>>>>> partitions.
> > > > >>>>>>>>>>>>>> The
> > > > >>>>>>>>>>>>>>>>>>> fact
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> that
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> we
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> don't want to add it to the
> > > > >> corresponding
> > > > >>>>>> Streams
> > > > >>>>>>>>>> API
> > > > >>>>>>>>>>>>>> also
> > > > >>>>>>>>>>>>>>>>>>>>> suggests
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something is not quite right. What
> > > > >> would we
> > > > >>>> do
> > > > >>>>>> if we
> > > > >>>>>>>>>>>>>> want to
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> support
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Streams in the future?
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> David
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Apr 29, 2026 at 12:28 AM
> > > > >> Muralidhar
> > > > >>>>>> Basani
> > > > >>>>>>>>>>> via
> > > > >>>>>>>>>>>>>> dev
> > > > >>>>>>>>>>>>>>>>> <
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [email protected]> wrote:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Jiunn,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thank you for this great kip. Good to
> > > > >> know
> > > > >>>>>> about
> > > > >>>>>>>>>> the
> > > > >>>>>>>>>>>>>> gap.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mb-0 - why a new v2 version bump for
> > > > >>>>>>>>>>>>>> RequestPartitionAges
> > > > >>>>>>>>>>>>>>>>>>>>> field.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> Can a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tagged field (for ex: on response,
> > > > >>>>>> PartitionAges on
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> TopicPartitions)
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> be
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> used here and avoid version bump?
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mb-1 - For the new config, is there a
> > > > >>>>>> recommended
> > > > >>>>>>>>>>>>> value
> > > > >>>>>>>>>>>>>> or
> > > > >>>>>>>>>>>>>>>>> a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> ConfigDef
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> validator? Probably it should based on
> > > > >> the
> > > > >>>>>>>>>>>>>>>>>>> metadata.max.age.ms
> > > > >>>>>>>>>>>>>>>>>>>>> ?
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Sizing
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instructions can be part of javadocs I
> > > > >>>> guess.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mb-2 - (minor) As there are no changes
> > > > >> to
> > > > >>>> Kafka
> > > > >>>>>>>>>>>>> Streams,
> > > > >>>>>>>>>>>>>>>>>>> would
> > > > >>>>>>>>>>>>>>>>>>>>> it
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> be
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> better
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to add this new config
> > > > >>>>>>>>>>>>> auto.offset.reset.latest.max.age
> > > > >>>>>>>>>>>>>> to
> > > > >>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> StreamsConfig block list
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> (NON_CONFIGURABLE_CONSUMER_DEFAULT_CONFIGS)
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> for a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> clear warning, incase users configure
> > > > >> it?
> > > > >>>> This
> > > > >>>>>> is
> > > > >>>>>>>>>> the
> > > > >>>>>>>>>>>>>> most
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> familiar
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> consumer config and users might easily
> > > > >>>>>> mistakenly
> > > > >>>>>>>>>>>>>> configure
> > > > >>>>>>>>>>>>>>>>>>>>> it. Or
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> may be
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's not worth it to add.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mb-3 - (minor) The phrasing "the
> > > > >> consumer
> > > > >>>> falls
> > > > >>>>>>>>>> back
> > > > >>>>>>>>>>>>> to
> > > > >>>>>>>>>>>>>>>>>>>>> earliest"
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> reads as
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if the config were being changed
> > > > >>>> per-partition
> > > > >>>>>>>>>> which
> > > > >>>>>>>>>>>>>> isn't
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> supported.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> May
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> be rephrasing to something like
> > > > >> "consumer
> > > > >>>>>> resolves
> > > > >>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>> initial
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> position to
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> start offset for that partition" as if
> > > > >>>>>> earliest was
> > > > >>>>>>>>>>>>>> applied
> > > > >>>>>>>>>>>>>>>>>>> to
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> that
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> partition only and auto.offset.reset
> > > > >>>> config is
> > > > >>>>>>>>>>>>>> unchanged.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Murali
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Apr 28, 2026 at 2:48 PM 黃竣陽 <
> > > > >>>>>>>>>>>>>> [email protected]>
> > > > >>>>>>>>>>>>>>>>>>>>> wrote:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi chia,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I have updated the KIP to include this
> > > > >>>> change.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best Regards,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]>
> > > > >> 於
> > > > >>>>>>>>>> 2026年4月28日
> > > > >>>>>>>>>>>>>> 晚上8:03
> > > > >>>>>>>>>>>>>>>>>>> 寫道:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> hi Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> chia_0: Should we expose the
> > > > >> partition
> > > > >>>>>> creation
> > > > >>>>>>>>>>> time
> > > > >>>>>>>>>>>>>> via
> > > > >>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> Admin
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> API?
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I assume it would be valuable for
> > > > >> users to
> > > > >>>>>>>>>> diagnose
> > > > >>>>>>>>>>>>> and
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> troubleshoot
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> behavior of
> > > > >>>> auto.offset.reset.latest.max.age
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2026/04/28 10:47:58 黃竣陽 wrote:
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hello everyone,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I would like to start a discussion
> > > > >> on
> > > > >>>>>> KIP-1327
> > > > >>>>>>>>>>>>>> Prevent
> > > > >>>>>>>>>>>>>>>>> Hot
> > > > >>>>>>>>>>>>>>>>>>>>> Data
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Loss
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Partition Expansion for Latest Policy
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>>
> > > > >>>>>>
> > > > >>>>
> > > > >>
> > > https://urldefense.com/v3/__https://cwiki.apache.org/confluence/x/KY4mGQ__;!!Ayb5sqE7!qF4q1QzF1RRgP61D7A2xuEai1ky7fepKDKFFvpNBuePikH-ULmT87TvuuZzy5kau5E4y5zMZAmfQQiwZomM$
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This proposal aims to introduces
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> auto.offset.reset.latest.max.age,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> a
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> consumer config that lets the
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> latest reset policy distinguish
> > > > >> newly
> > > > >>>>>> expanded
> > > > >>>>>>>>>>>>> (hot)
> > > > >>>>>>>>>>>>>>>>>>>>> partitions
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>> from
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> long-existing (cold) ones. Partitions
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> younger than the configured
> > > > >> threshold
> > > > >>>>>>>>>>> automatically
> > > > >>>>>>>>>>>>>> fall
> > > > >>>>>>>>>>>>>>>>>>>>> back
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> to
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> earliest, preventing silent data loss
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> during topic expansion without
> > > > >> forcing a
> > > > >>>>>> full
> > > > >>>>>>>>>>>>>> historical
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>> reprocess.
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best regards,
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>>
> > > > >>>>>>>>>>>>>
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>
> > > > >>>>>>>
> > > > >>>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > > >>>>
> > > > >>>
> > > > >>
> > > >
> > > >
> > >
> > 
> 

Reply via email to