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