Hello chia, Thanks for the feedback, I have updated the KIP.
Best Regards, Jiunn-Yang > Chia-Ping Tsai <[email protected]> 於 2026年6月17日 凌晨12:47 寫道: > > hi Jiunn-Yang > >> When the config is set on a cluster that has not yet been upgraded... >> classification cannot occur... the consumer falls back to the base >> auto.offset.reset for the affected partitions. No exception is thrown, and >> no operational disruption results. > > Existing group can't take advantage of this excellent new configuration. > Allowing users to modify the group creation time might be overkill. Instead, > we could print a useful warning message to guide users. For example, we can > suggest that they re-create the group with their existing committed offsets > >> Protocol changes > > Would you mind listing those RPC changes in a table format? > >> The full interaction matrix between the base policy and the new-partition >> policy is: > > Please add a filed to describe the target scenario when using these policies > > Best, > Chia-Ping > > > On 2026/06/16 16:14:49 黃竣陽 wrote: >> Hello Jun, chia, >> >> Thanks for the feedback, I have updated the KIP for the new >> approach, PTAL >> >> Best Regards, >> Jiunn-Yang >> >>> Chia-Ping Tsai <[email protected]> 於 2026年6月16日 上午8:23 寫道: >>> >>> hi Jun >>> >>> Yes, your approach is great. I think the combination of latest (for >>> existing partitions) and by_duration (for new partitions) can address 99% >>> of the complaints I have heard regarding this issue. >>> >>> Also, leveraging the group creation time here opens the door to >>> implementing a new policy based on timestamp seek in the future, should the >>> community want to pursue that. >>> >>> Thanks for your patience and constructive feedback. We will update the KIP >>> accordingly. >>> >>> Best, Chia-Ping >>> >>>> Jun Rao via dev <[email protected]> 於 2026年6月16日 清晨5:11 寫道: >>>> >>>> Hi, Chia-Ping, >>>> >>>> Thanks for the reply. >>>> >>>> I agree that it's probably useful to allow a user to configure a different >>>> offset policy for existing partitions vs new partitions. However, using >>>> group creation time to capture that seems more intuitive. Here is another >>>> proposal: remove auto.offset.reset.max.age.ms and categorize new partitions >>>> based on group creation time. Introduce >>>> a new config auto.offset.reset.new.partitions whose values can be earliest, >>>> latest and by_duration, the same as auto.offset.reset. Users can set >>>> `auto.offset.reset.new.partitions` to `earliest` if they want to guarantee >>>> no data loss on new partitions. They can also use by_duration to set an >>>> upper bound on the backlog replayed, which can be different from that of >>>> the existing partitions. This will address your concern about too much >>>> backlog being replayed when the offsets are lost. What do you think? >>>> >>>> Jun >>>> >>>> >>>>> On Mon, Jun 15, 2026 at 10:39 AM Chia-Ping Tsai <[email protected]> >>>>> wrote: >>>>> >>>>> hi Jun >>>>> >>>>> The most important part of this story is how users should expect the data >>>>> they can see when using the latest or by_duration policy with expanded >>>>> partitions. >>>>> >>>>> Yes, the by_duration policy can minimize data loss, but it is >>>>> non-deterministic, which means users will either read too many historical >>>>> records from existing partitions or lose some records from expanded >>>>> partitions. >>>>> >>>>> Also, I agree that auto.offset.reset.max.age.ms >>>>> <https://urldefense.com/v3/__http://auto.offset.reset.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpwnwknH$> >>>>> is a bit hard to understand, and that is why I preferred having a whole >>>>> new >>>>> policy based entirely on group creation time (KIP-1282) >>>>> >>>>> Best, >>>>> Chia-Ping >>>>> >>>>> Jun Rao via dev <[email protected]> 於 2026年6月16日週二 上午1:08寫道: >>>>> >>>>>> Hi, Chia-Ping and Jiunn-Yang, >>>>>> >>>>>> Thanks for the reply. I am still trying to understand the value of the >>>>>> new >>>>>> configs with the KIP. >>>>>> >>>>>> The motivation of the KIP is that a user doesn't want to miss the data if >>>>>> the backlog is small. The backlog of the existing partition is easy to >>>>>> understand because it relates to retention time. The backlog for the new >>>>>> partition is a bit subtle to understand since it depends on the metadata >>>>>> refresh delay. To set auto.offset.reset.max.age.ms >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpwnwknH$>, >>>>>> the user needs to >>>>>> understand the metadata refresh delay on the consumer side and use it to >>>>>> set the config. >>>>>> >>>>>> Now, let's consider the alternative: setting the same value for the >>>>>> existing by_duration policy. The KIP lists three issues with this >>>>>> approach. >>>>>> 1. It computes the seek target client-side as now() - duration, which >>>>>> introduces clock skew across consumers and forces operators to choose >>>>>> overly large durations, causing unnecessary reprocessing. >>>>>> 2. The target timestamp is recomputed on each retry, so failed >>>>>> ListOffsetsRequest retries can shift the target forward and potentially >>>>>> miss records produced between attempts. >>>>>> 3. It applies uniformly to all partitions without committed offsets, and >>>>>> cannot distinguish newly expanded partitions from long-existing >>>>>> partitions >>>>>> newly assigned to the group, leading to unnecessary replay. >>>>>> >>>>>> Issues 1 and 2 are uncommon and can be mitigated by adding a bit buffer >>>>>> to >>>>>> the metadata refresh delay. We could also consider improving the >>>>>> implementation. For issue 3, the metadata refresh delay is typically low >>>>>> (in the order of minutes with the classic consumer and tens of seconds >>>>>> with >>>>>> the new consumer). If a user is ok with reading that much backlog for new >>>>>> partitions, it seems they will be ok doing the same for existing >>>>>> partitions. >>>>>> >>>>>> So, instead of introducing a new config, could we just reuse the existing >>>>>> config with better documentation and/or implementation? >>>>>> >>>>>> Jun >>>>>> >>>>>> >>>>>>> On Sat, Jun 13, 2026 at 12:19 AM 黃竣陽 <[email protected]> wrote: >>>>>> >>>>>>> Hello Jun, >>>>>>> >>>>>>> You're right that group creation time is the more intuitive answer at >>>>>>> first glance, >>>>>>> the KIP's own motivation talks about partitions that "predate the group" >>>>>>> vs partitions >>>>>>> "created during group runtime," which directly points to a >>>>>> group-lifecycle >>>>>>> classifier. >>>>>>> I'd like to walk through why we landed on partition age, and the >>>>>>> trade-offs we considered. >>>>>>> >>>>>>> We evaluated three candidate signals: >>>>>>> >>>>>>> 1. `by_duration:5secs` >>>>>>> >>>>>>> This covers the metadata blindness window, but has issues the KIP >>>>>>> currently documents >>>>>>> under "Why not use `by_duration`?": >>>>>>> >>>>>>> - Client-side `now() - duration` introduces clock skew across consumers. >>>>>>> - `ListOffsets` retries shift the target forward, potentially missing >>>>>>> records produced between >>>>>>> attempts. >>>>>>> - It applies uniformly to all partitions without committed offsets, >>>>>>> including pre-existing partitions >>>>>>> newly assigned to the group, causing unnecessary replay. >>>>>>> >>>>>>> 2. Group creation time as classifier >>>>>>> >>>>>>> This works cleanly when the consumer is actively running. Our concern >>>>>>> is the idle / late-rejoin case: >>>>>>> >>>>>>> T=0: Group created. >>>>>>> T=1..T=100: Consumer idle (down, disconnected, etc.). >>>>>>> T=50: Partition added during the idle window. >>>>>>> T=100: Consumer resumes. >>>>>>> >>>>>>> Under group creation time, the new partition is classified as new >>>>>>> (`50 > 0`) and reset to `earliest`, replaying everything from T=50. >>>>>>> But during `[T=1, T=100]`, base partitions also accumulated data that >>>>>>> the consumer accepts as lost — that is precisely the contract of >>>>>>> `auto.offset.reset=latest`. There is no principled reason to treat >>>>>>> the new partition differently; both contain backlog accumulated during >>>>>>> the same idle window. >>>>>>> >>>>>>> This aligns with the "backlog is backlog” principle you raised in >>>>>>> the KIP-1282 thread: a `latest` user has tolerated some backlog on >>>>>>> every other partition during the same idle period; forcing 0-backlog >>>>>>> tolerance only on new partitions would be inconsistent with that >>>>>>> tolerance. >>>>>>> >>>>>>> 3. Partition age vs threshold >>>>>>> >>>>>>> Partition age corresponds to the actual silent data loss window, >>>>>>> the gap between partition creation and the consumer’s metadata >>>>>>> refresh. Within this window, data loss is genuinely silent: the >>>>>>> consumer had no opportunity to know about the partition. Outside this >>>>>>> window, missing data reflects either: >>>>>>> >>>>>>> - (a) the user’s tolerated cost of running with idle consumers, or >>>>>>> - (b) an operational issue to surface via monitoring, not via reset >>>>>> policy. >>>>>>> >>>>>>> We did not choose partition age because it is more elegant than group >>>>>>> creation time — we chose it because its failure mode (requires a >>>>>>> threshold) is >>>>>>> less invasive than the failure mode of group creation time (overrides >>>>>>> user-stated >>>>>>> `latest` intent during idle periods). >>>>>>> >>>>>>> Best Regards, >>>>>>> Jiunn-Yang >>>>>>> >>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年6月13日 上午11:52 寫道: >>>>>>>> >>>>>>>> Hi Jun, >>>>>>>> >>>>>>>> Relying on both creation times will create an inconsistent scenario. A >>>>>>>> consumer that lost all offsets due to a long sleep will seek to the >>>>>>>> beginning for the partitions created later than the group. >>>>>>>> >>>>>>>> That is why we initially proposed KIP-1282 to fix the inconsistency >>>>>>> using a >>>>>>>> whole new policy. Since KIP-1282 couldn't reach a consensus, KIP-1327 >>>>>>> goes >>>>>>>> back to using flexible configurations to prevent users from falling >>>>>> into >>>>>>>> that pitfall. >>>>>>>> >>>>>>>> Best, Chia-Ping >>>>>>>> >>>>>>>> Jun Rao via dev <[email protected]> 於 2026年6月13日週六 上午6:49寫道: >>>>>>>> >>>>>>>>> Hi, Jiunn-Yang, >>>>>>>>> >>>>>>>>> Thanks for the reply and sorry for the late reply. >>>>>>>>> >>>>>>>>> JR1. The design of auto.offset.reset.max.age.ms >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpwnwknH$> >>>>>> still feels weird to >>>>>>> me. >>>>>>>>> It >>>>>>>>> categorizes partitions as new or existing based on the partition >>>>>>> creation >>>>>>>>> time. Intuitively, the categorization should be based on the group >>>>>>> creation >>>>>>>>> time: all partitions existing when the group is created are existing >>>>>> and >>>>>>>>> all partitions created after the group creation are new partitions. >>>>>>>>> >>>>>>>>> Jun >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tue, Jun 9, 2026 at 8:51 AM 黃竣陽 <[email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi all, >>>>>>>>>> >>>>>>>>>> Manually bumping this thread. If there is no further >>>>>>>>>> discussion, I will close the vote. >>>>>>>>>> >>>>>>>>>> Best Regards, >>>>>>>>>> Jiunn-Yang >>>>>>>>>> >>>>>>>>>>> 黃竣陽 <[email protected]> 於 2026年6月1日 晚上7:16 寫道: >>>>>>>>>>> >>>>>>>>>>> Hello Jian, >>>>>>>>>>> >>>>>>>>>>> Thanks for your feedback, >>>>>>>>>>> >>>>>>>>>>> Agreed, partition expansion is a common operational task, not an >>>>>> edge >>>>>>>>>>> case. I've updated the Motivation section accordingly. >>>>>>>>>>> >>>>>>>>>>> Best Regards, >>>>>>>>>>> Jiunn-Yang >>>>>>>>>>> >>>>>>>>>>>> jian fu <[email protected]> 於 2026年6月1日 下午5:49 寫道: >>>>>>>>>>>> >>>>>>>>>>>> Hi Jiunn-Yang: >>>>>>>>>>>> >>>>>>>>>>>> Thanks for the KIP. I think it would be useful to clarify that >>>>>> this >>>>>>>>> is a >>>>>>>>>>>> common scenario rather than an edge case, which further >>>>>> demonstrates >>>>>>>>> the >>>>>>>>>>>> need for this optimization. For example: >>>>>>>>>>>> A partition expansion is a common operational task in Kafka: To >>>>>>>>> balance >>>>>>>>>>>> resource utilization and cost, topics are typically created with a >>>>>>>>>> moderate >>>>>>>>>>>> default partition count. However, as traffic grows over time, it >>>>>> is >>>>>>>>>> often >>>>>>>>>>>> necessary to increase the number of partitions to accommodate the >>>>>>>>> higher >>>>>>>>>>>> workload. >>>>>>>>>>>> >>>>>>>>>>>> Regards >>>>>>>>>>>> Jian >>>>>>>>>>>> >>>>>>>>>>>> 黃竣陽 <[email protected]> 于2026年5月30日周六 22:31写道: >>>>>>>>>>>> >>>>>>>>>>>>> Hello chia, >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks for the comments, I have updated the KIP! >>>>>>>>>>>>> >>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>> Jiunn-Yang >>>>>>>>>>>>> >>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年5月30日 晚上8:29 寫道: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Jiunn-Yang, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Would you mind removing the terms "hot" and "cold" when >>>>>> describing >>>>>>>>>>>>>> partitions in the KIP? I understand you are using them to >>>>>> describe >>>>>>>>> the >>>>>>>>>>>>>> "freshness" or the users' need for the records, but applying >>>>>> these >>>>>>>>>> terms >>>>>>>>>>>>> to >>>>>>>>>>>>>> the partition itself feels a bit unnatural. >>>>>>>>>>>>>> >>>>>>>>>>>>>> After all, in this scenario, users don't really care whether a >>>>>>>>>> partition >>>>>>>>>>>>> is >>>>>>>>>>>>>> newly expanded or not. Their only expectation is that they won't >>>>>>>>>> silently >>>>>>>>>>>>>> lose any live records produced to the topic during their active >>>>>>>>>>>>> consumption. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Best, Chia-Ping >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> 黃竣陽 <[email protected]> 於 2026年5月30日週六 下午12:30寫道: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hello Jun, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks for the feedback, I have updated the KIP motivation >>>>>>> section. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>>> Jiunn-Yang >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Jun Rao via dev <[email protected]> 於 2026年5月30日 凌晨1:12 >>>>>> 寫道: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi, Jiunn-Yang, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks for the reply. I think we need a stronger motivation >>>>>> for >>>>>>>>> the >>>>>>>>>>>>> KIP. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The KIP says "The core insight is that not all partitions >>>>>> without >>>>>>>>> a >>>>>>>>>>>>>>>> committed offset are the same. A newly expanded partition >>>>>> (hot) >>>>>>> is >>>>>>>>>>>>>>>> fundamentally different from a partition the consumer has >>>>>> never >>>>>>>>> seen >>>>>>>>>>>>>>>> because it predates the group (cold)." Why is the hot >>>>>> partition >>>>>>>>>>>>>>>> fundamentally different from the cold? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The KIP says "The existing by_duration policy is also >>>>>>> insufficient >>>>>>>>>>>>>>> because: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - The calculated seek time (now() - duration) varies across >>>>>> nodes >>>>>>>>>> due >>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>> clock skew. To be safe, users must set an overly large >>>>>> duration, >>>>>>>>>>>>>>> causing >>>>>>>>>>>>>>>> unnecessary reprocessing. >>>>>>>>>>>>>>>> - On network errors, the client recalculates the seek time on >>>>>>>>> retry, >>>>>>>>>>>>>>>> shifting the target timestamp forward and risking data loss." >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> However, both of these situations are rare. If these issues >>>>>>>>> persist, >>>>>>>>>>>>> more >>>>>>>>>>>>>>>> severe problems likely exist elsewhere. Rare situations don't >>>>>>>>> need a >>>>>>>>>>>>>>> common >>>>>>>>>>>>>>>> solution. If users care about those rare situations, they can >>>>>>>>>> implement >>>>>>>>>>>>>>>> customized logic using >>>>>>>>>>>>> ConsumerRebalanceListener.onPartitionsAssigned(). >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Jun >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Sun, May 17, 2026 at 6:50 AM 黃竣陽 <[email protected]> >>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hello chia, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks for the feedback, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> If the creation time exists, the returned value should >>>>>> always >>>>>>> be >>>>>>>>>>>>>>> greater >>>>>>>>>>>>>>>>> than or equal to zero, right? >>>>>>>>>>>>>>>>> I have explicitly mentioned this in the KIP. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> New Old (MetadataResponse v0–13) positive any >>>>>>>>>> field >>>>>>>>>>>>>>>>> absent UnsupportedVersionException >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> The earliest point at which we can detect the version >>>>>> mismatch >>>>>>> is >>>>>>>>>>>>> during >>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>> first metadata fetch after assignment, which occurs inside >>>>>>>>> poll(). >>>>>>>>>>>>>>>>> Therefore, the >>>>>>>>>>>>>>>>> user would encounter an UnsupportedVersionException from >>>>>> poll(). >>>>>>>>>> I’ll >>>>>>>>>>>>>>>>> clarify this in the KIP. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>>>>> Jiunn-Yang >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年5月17日 下午4:50 >>>>>> 寫道: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> hi Jiunn >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> PartitionAgeMs (int64, default -1): The age of this >>>>>> partition >>>>>>>>> in >>>>>>>>>>>>>>>>> milliseconds, computed server-side by the broker as >>>>>>>>>>>>> broker_current_time >>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>> partition_creation_time. Returns -1 if the broker does not >>>>>>>>> support >>>>>>>>>>>>> this >>>>>>>>>>>>>>>>> feature or the partition creation time is unknown. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> If the creation time exists, the returned value should >>>>>> always >>>>>>> be >>>>>>>>>>>>>>> greater >>>>>>>>>>>>>>>>> than or equal to zero, right? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> New Old (MetadataResponse v0–13) positive any >>>>>>>>>> field >>>>>>>>>>>>>>>>> absent UnsupportedVersionException >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Will user encounter UnsupportedVersionException when calling >>>>>>>>>>>>> `poll()`? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Best, >>>>>>>>>>>>>>>>>> Chia-Ping >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On 2026/05/16 04:30:49 黃竣陽 wrote: >>>>>>>>>>>>>>>>>>> Hello Jun, chia, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I've updated KIP-1327 with a design change based on the >>>>>>>>>> discussion >>>>>>>>>>>>>>>>>>> feedback. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> The updated design decouples the new-partition reset >>>>>> behavior >>>>>>>>>> from >>>>>>>>>>>>>>>>>>> the base auto.offset.reset policy: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> - auto.offset.reset.max.age.ms >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpwnwknH$> >>>>>> now applies to all >>>>>>>>>> auto.offset.reset >>>>>>>>>>>>>>>>> values >>>>>>>>>>>>>>>>>>> (latest, earliest, by_duration, none). >>>>>>>>>>>>>>>>>>> - For new ("hot") partitions, the consumer resets to >>>>>>>>>>>>>>>>> auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$> >>>>>> .partitions >>>>>>>>>>>>>>>>>>> config setting >>>>>>>>>>>>>>>>>>> - For existing ("cold") partitions, the base >>>>>> auto.offset.reset >>>>>>>>>>>>> policy >>>>>>>>>>>>>>>>> continues >>>>>>>>>>>>>>>>>>> to apply unchanged. >>>>>>>>>>>>>>>>>>> - The new-partition reset behavior is represented by a >>>>>>> separate >>>>>>>>>>>>>>>>> internal config >>>>>>>>>>>>>>>>>>> (auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.partitions, >>>>>> currently fixed to >>>>>>>>> earliest). >>>>>>>>>>>>> This >>>>>>>>>>>>>>>>> decoupled design makes >>>>>>>>>>>>>>>>>>> it straightforward to promote the behavior to a public >>>>>>>>>> user-facing >>>>>>>>>>>>>>>>> configuration in a future KIP. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>>>>>>> Jiunn-Yang >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年5月16日 清晨7:46 >>>>>> 寫道: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> hi Jun >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I see what you mean now. The proposal from me is listed >>>>>>> below: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> 1) Add auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.partitions >>>>>> with a default value >>>>>>>>> of >>>>>>>>>>>>>>>>> earliest. It fixes the data loss from both by_duration and >>>>>>>>> latest, >>>>>>>>>> and >>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>> does not change the logic of auto.offset.reset=earliest. >>>>>>>>>>>>>>>>>>>> 2) Mark auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.partitions >>>>>> as an internal >>>>>>>>>>>>>>>>> configuration. auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$> >>>>>> .partitions=earliest >>>>>>> already >>>>>>>>>>>>>>>>> addresses the issue, and we can discuss the use cases of >>>>>> other >>>>>>>>>> values >>>>>>>>>>>>>>> in a >>>>>>>>>>>>>>>>> separate KIP. >>>>>>>>>>>>>>>>>>>> 3) Both configs, auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.partitions >>>>>> and >>>>>>>>>>>>>>>>> auto.offset.reset.latest.max.age.ms >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.latest.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfu9JSP4l$>, >>>>>> will be applied to all for >>>>>>>>>>>>>>>>> consistency. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> WDYT? >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On 2026/05/15 20:53:20 Jun Rao via dev wrote: >>>>>>>>>>>>>>>>>>>>> Hi, Chia-Ping, >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thanks for the reply. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> 1. In the motivation section, the KIP says "When a Kafka >>>>>>>>> topic >>>>>>>>>> is >>>>>>>>>>>>>>>>> expanded >>>>>>>>>>>>>>>>>>>>> with new partitions, consumers using the latest auto >>>>>> offset >>>>>>>>>> reset >>>>>>>>>>>>>>>>> policy >>>>>>>>>>>>>>>>>>>>> will silently miss all records produced to those >>>>>> partitions >>>>>>>>>> before >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>> consumer discovers them.". If a user sets >>>>>>>>>>>>>>>>>>>>> auto.offset.reset=by_duration=1sec, the same record loss >>>>>>>>> issue >>>>>>>>>>>>> could >>>>>>>>>>>>>>>>> also >>>>>>>>>>>>>>>>>>>>> happen, right? >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> 2. I was thinking auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.partitions >>>>>> will >>>>>>> take >>>>>>>>>> the >>>>>>>>>>>>>>> same >>>>>>>>>>>>>>>>>>>>> values as auto.offset.reset. So a user could set it >>>>>>>>>> by_duration if >>>>>>>>>>>>>>>>> needed. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Jun >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Thu, May 14, 2026 at 4:06 PM Chia-Ping Tsai < >>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> hi Jun >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Thanks for the feedback. I might be missing something >>>>>>>>>> important >>>>>>>>>>>>>>> from >>>>>>>>>>>>>>>>> your >>>>>>>>>>>>>>>>>>>>>> suggestion, so please bear with me as I try to clarify >>>>>> with >>>>>>>>> a >>>>>>>>>> few >>>>>>>>>>>>>>>>> questions: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> 1. Is there a strong use case for extending this logic >>>>>> to >>>>>>>>>> other >>>>>>>>>>>>>>> reset >>>>>>>>>>>>>>>>>>>>>> policies? Unlike latest, policies like earliest or >>>>>>>>> by_duration >>>>>>>>>>>>>>> don't >>>>>>>>>>>>>>>>> seem >>>>>>>>>>>>>>>>>>>>>> to suffer from the same silent data loss issue when a >>>>>>>>>> partition >>>>>>>>>>>>> is >>>>>>>>>>>>>>>>> expanded. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> 2. What values would we expect users to configure for >>>>>>>>>>>>>>>>>>>>>> auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$>.partitions? >>>>>> If they set it to >>>>>>>>> earliest >>>>>>>>>> or >>>>>>>>>>>>>>>>> latest, >>>>>>>>>>>>>>>>>>>>>> we might run into the exact same edge cases. For >>>>>> example, >>>>>>>>> if a >>>>>>>>>>>>>>>>> consumer is >>>>>>>>>>>>>>>>>>>>>> offline for a while and a new partition is created >>>>>> during >>>>>>>>> that >>>>>>>>>>>>>>>>> downtime, >>>>>>>>>>>>>>>>>>>>>> the user might actually want to skip to latest when >>>>>>>>> resuming, >>>>>>>>>>>>>>> rather >>>>>>>>>>>>>>>>> than >>>>>>>>>>>>>>>>>>>>>> reading from earliest just because the partition is >>>>>>>>>> technically >>>>>>>>>>>>>>>>> "new" to >>>>>>>>>>>>>>>>>>>>>> the group. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> This is exactly why we opted for introducing a max.age >>>>>>>>>> threshold. >>>>>>>>>>>>>>> It >>>>>>>>>>>>>>>>> gives >>>>>>>>>>>>>>>>>>>>>> users a time-bound way to define what is genuinely >>>>>>> "hot/new" >>>>>>>>>> and >>>>>>>>>>>>>>>>> what is >>>>>>>>>>>>>>>>>>>>>> just an old partition they haven't seen yet. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Best, >>>>>>>>>>>>>>>>>>>>>> Chia-Ping >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> On 2026/05/14 20:48:09 Jun Rao via dev wrote: >>>>>>>>>>>>>>>>>>>>>>> Hi, Jiunn-Yang, >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> I find auto.offset.reset.latest.max.age a bit weird. It >>>>>>>>> only >>>>>>>>>>>>>>>>> applies when >>>>>>>>>>>>>>>>>>>>>>> auto.offset.reset is latest. However, it seems that the >>>>>>>>>>>>> motivation >>>>>>>>>>>>>>>>>>>>>> equally >>>>>>>>>>>>>>>>>>>>>>> applies when auto.offset.reset is set to other values >>>>>> like >>>>>>>>>>>>>>>>> by_duration. >>>>>>>>>>>>>>>>>>>>>> The >>>>>>>>>>>>>>>>>>>>>>> intention is that we want to have a separate way to >>>>>>> control >>>>>>>>>>>>> newly >>>>>>>>>>>>>>>>> created >>>>>>>>>>>>>>>>>>>>>>> partitions vs existing partitions when the group >>>>>> starts. >>>>>>>>>> Have we >>>>>>>>>>>>>>>>>>>>>> considered >>>>>>>>>>>>>>>>>>>>>>> adding a new config like auto.offset.reset.new >>>>>> <https://urldefense.com/v3/__http://auto.offset.reset.new__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkfpDMjdw3$> >>>>>>> .partitions? >>>>>>>>>> If >>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>>> new >>>>>>>>>>>>>>>>>>>>>>> config is not set, the offset reset policy defaults to >>>>>> the >>>>>>>>>>>>> policy >>>>>>>>>>>>>>>>> used >>>>>>>>>>>>>>>>>>>>>> for >>>>>>>>>>>>>>>>>>>>>>> existing partitions. The user could set it explicitly >>>>>> to >>>>>>>>>>>>> customize >>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>> behavior for new partitions. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Jun >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> On Thu, May 7, 2026 at 5:07 AM 黃竣陽 <[email protected] >>>>>>> >>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> I’d like to manually bump this thread. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> 黃竣陽 <[email protected]> 於 2026年5月1日 晚上10:37 寫道: >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Hello all, >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the feedback. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> DJ01/DJ02: >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> MetadataResponse bumps from v13 to v14. The >>>>>>>>>> PartitionMetadata >>>>>>>>>>>>>>>>> struct >>>>>>>>>>>>>>>>>>>>>>>> gains a new >>>>>>>>>>>>>>>>>>>>>>>>> field PartitionAgeMs (int64, default -1), computed >>>>>>>>>> server-side >>>>>>>>>>>>>>> by >>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>> broker as >>>>>>>>>>>>>>>>>>>>>>>>> broker_current_time - partition_creation_time. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Also add the consumer heartbeat flow. when >>>>>>>>>> MembershipManager >>>>>>>>>>>>>>>>> detects >>>>>>>>>>>>>>>>>>>>>> a >>>>>>>>>>>>>>>>>>>>>>>> newly assigned >>>>>>>>>>>>>>>>>>>>>>>>> partition, it explicitly invalidates the metadata for >>>>>>> the >>>>>>>>>>>>>>> affected >>>>>>>>>>>>>>>>>>>>>> topic >>>>>>>>>>>>>>>>>>>>>>>> and forces a fresh MetadataRequest >>>>>>>>>>>>>>>>>>>>>>>>> before making the offset reset decision, even if the >>>>>>>>> topic >>>>>>>>>> ID >>>>>>>>>>>>> is >>>>>>>>>>>>>>>>>>>>>> already >>>>>>>>>>>>>>>>>>>>>>>> in the cache. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> MB0: >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> The consumer learns the broker's maximum supported >>>>>>>>>>>>>>>>> MetadataResponse >>>>>>>>>>>>>>>>>>>>>>>> version via the >>>>>>>>>>>>>>>>>>>>>>>>> ApiVersions negotiation at connection time. If the >>>>>>>>>> negotiated >>>>>>>>>>>>>>>>>>>>>> version is >>>>>>>>>>>>>>>>>>>>>>>> unsupported, the consumer >>>>>>>>>>>>>>>>>>>>>>>>> knows the broker does not support PartitionAgeMs at >>>>>> all >>>>>>>>> and >>>>>>>>>>>>> can >>>>>>>>>>>>>>>>>>>>>> throw an >>>>>>>>>>>>>>>>>>>>>>>> UnsupportedVersionException >>>>>>>>>>>>>>>>>>>>>>>>> immediately, rather than silently falling back to >>>>>> latest >>>>>>>>>> and >>>>>>>>>>>>>>>>> risking >>>>>>>>>>>>>>>>>>>>>>>> data loss without any operator-visible signal. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> MB1/MB2/MB3: >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> I have addressed these changes in the KIP. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 2026年4月29日 >>>>>>> 下午4:04 >>>>>>>>>> 寫道: >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> hi David >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> I agree with the direction of moving the 'age' >>>>>>>>> resolution >>>>>>>>>>>>> from >>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>> Heartbeat API to the Metadata API to keep the control >>>>>>>>> plane >>>>>>>>>>>>>>> clean. >>>>>>>>>>>>>>>>> The >>>>>>>>>>>>>>>>>>>>>> main >>>>>>>>>>>>>>>>>>>>>>>> trade-off, as we noted before, is introducing >>>>>>> inter-broker >>>>>>>>>>>>> clock >>>>>>>>>>>>>>>>> skew. >>>>>>>>>>>>>>>>>>>>>> The >>>>>>>>>>>>>>>>>>>>>>>> Group Coordinator approach provided a single source of >>>>>>>>> truth >>>>>>>>>>>>> for >>>>>>>>>>>>>>>>> time. >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> However, realistically, this time skew should be >>>>>>>>>> negligible. >>>>>>>>>>>>>>>>> Given >>>>>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>>>>> the max.age threshold will likely be configured in >>>>>>> minutes >>>>>>>>>> or >>>>>>>>>>>>>>>>> hours, a >>>>>>>>>>>>>>>>>>>>>>>> typical NTP skew (in milliseconds) between brokers >>>>>> won't >>>>>>>>>> impact >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>> fallback decision. >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Best, >>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> David Jacot via dev <[email protected]> 於 >>>>>>>>> 2026年4月29日 >>>>>>>>>>>>>>> 下午3:29 >>>>>>>>>>>>>>>>> 寫道: >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP! >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Sorry, I haven't really followed the previous >>>>>>>>>> conversation >>>>>>>>>>>>>>> but I >>>>>>>>>>>>>>>>>>>>>> took a >>>>>>>>>>>>>>>>>>>>>>>>>>> quick look at this one. >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> DJ01: I don't clearly understand the flow with the >>>>>>>>>>>>>>>>>>>>>>>> ConsumerGroupHeartbeat >>>>>>>>>>>>>>>>>>>>>>>>>>> API after reading the KIP. There is a new boolean; >>>>>> the >>>>>>>>>> KIP >>>>>>>>>>>>>>>>> states >>>>>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>>>>>>>> partition ages are returned only when this boolean >>>>>> is >>>>>>>>>> set. >>>>>>>>>>>>>>>>>>>>>> Implicitly, >>>>>>>>>>>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>>>>>>>>>>>>> means that when the consumer receives a new >>>>>> partition, >>>>>>>>> it >>>>>>>>>>>>> will >>>>>>>>>>>>>>>>>>>>>> issue a >>>>>>>>>>>>>>>>>>>>>>>> new >>>>>>>>>>>>>>>>>>>>>>>>>>> HB request with the boolean set to receive the >>>>>> ages. >>>>>>> Is >>>>>>>>>> my >>>>>>>>>>>>>>>>>>>>>>>> understanding >>>>>>>>>>>>>>>>>>>>>>>>>>> correct? We should perhaps clarify the flow and >>>>>> also >>>>>>>>>> explain >>>>>>>>>>>>>>>>> how it >>>>>>>>>>>>>>>>>>>>>>>> fits >>>>>>>>>>>>>>>>>>>>>>>>>>> into the existing flow (e.g. list offsets, fetch >>>>>>>>> offsets, >>>>>>>>>>>>>>> etc.). >>>>>>>>>>>>>>>>>>>>>>>>>>> DJ02: It my understanding is correct, I wonder if >>>>>>>>>>>>>>>>>>>>>>>>>>> the ConsumerGroupHeartbeat API is the right place >>>>>> for >>>>>>>>>> this >>>>>>>>>>>>>>> given >>>>>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>>>>> a new >>>>>>>>>>>>>>>>>>>>>>>>>>> round trip is done anyway. Alternatively, it could >>>>>>>>> simply >>>>>>>>>>>>>>>>> include >>>>>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>>>>> metadata. Generally, we should be rather cautious >>>>>>> about >>>>>>>>>> not >>>>>>>>>>>>>>>>>>>>>> overloading >>>>>>>>>>>>>>>>>>>>>>>>>>> the ConsumerGroupHeartbeat API with unrelated >>>>>>> concepts. >>>>>>>>>> The >>>>>>>>>>>>>>> API >>>>>>>>>>>>>>>>> is >>>>>>>>>>>>>>>>>>>>>> a >>>>>>>>>>>>>>>>>>>>>>>>>>> control plane API for assigning or revoking >>>>>>> partitions. >>>>>>>>>> The >>>>>>>>>>>>>>> fact >>>>>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>>>>> we >>>>>>>>>>>>>>>>>>>>>>>>>>> don't want to add it to the corresponding Streams >>>>>> API >>>>>>>>>> also >>>>>>>>>>>>>>>>> suggests >>>>>>>>>>>>>>>>>>>>>>>>>>> something is not quite right. What would we do if >>>>>> we >>>>>>>>>> want to >>>>>>>>>>>>>>>>>>>>>> support >>>>>>>>>>>>>>>>>>>>>>>>>>> Streams in the future? >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Best, >>>>>>>>>>>>>>>>>>>>>>>>>>> David >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Apr 29, 2026 at 12:28 AM Muralidhar Basani >>>>>>> via >>>>>>>>>> dev >>>>>>>>>>>>> < >>>>>>>>>>>>>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Jiunn, >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Thank you for this great kip. Good to know about >>>>>> the >>>>>>>>>> gap. >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> mb-0 - why a new v2 version bump for >>>>>>>>>> RequestPartitionAges >>>>>>>>>>>>>>>>> field. >>>>>>>>>>>>>>>>>>>>>> Can a >>>>>>>>>>>>>>>>>>>>>>>>>>>> tagged field (for ex: on response, PartitionAges >>>>>> on >>>>>>>>>>>>>>>>>>>>>> TopicPartitions) >>>>>>>>>>>>>>>>>>>>>>>> be >>>>>>>>>>>>>>>>>>>>>>>>>>>> used here and avoid version bump? >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> mb-1 - For the new config, is there a recommended >>>>>>>>> value >>>>>>>>>> or >>>>>>>>>>>>> a >>>>>>>>>>>>>>>>>>>>>> ConfigDef >>>>>>>>>>>>>>>>>>>>>>>>>>>> validator? Probably it should based on the >>>>>>>>>>>>>>> metadata.max.age.ms >>>>>> <https://urldefense.com/v3/__http://metadata.max.age.ms__;!!Ayb5sqE7!ryUSIElKDF-DJJHgYwYXwp4XEBXpXuBOnZd18PJoMNH4LZ1gc-pDbbdfb2eme_dRSvdvI3bkflKEb5SK$> >>>>>>>>>>>>>>>>> ? >>>>>>>>>>>>>>>>>>>>>>>> Sizing >>>>>>>>>>>>>>>>>>>>>>>>>>>> instructions can be part of javadocs I guess. >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> mb-2 - (minor) As there are no changes to Kafka >>>>>>>>> Streams, >>>>>>>>>>>>>>> would >>>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>>>>>> be >>>>>>>>>>>>>>>>>>>>>>>> better >>>>>>>>>>>>>>>>>>>>>>>>>>>> to add this new config >>>>>>>>> auto.offset.reset.latest.max.age >>>>>>>>>> to >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>>>>>> StreamsConfig block list >>>>>>>>>>>>>>>>>>>>>> (NON_CONFIGURABLE_CONSUMER_DEFAULT_CONFIGS) >>>>>>>>>>>>>>>>>>>>>>>> for a >>>>>>>>>>>>>>>>>>>>>>>>>>>> clear warning, incase users configure it? This is >>>>>> the >>>>>>>>>> most >>>>>>>>>>>>>>>>>>>>>> familiar >>>>>>>>>>>>>>>>>>>>>>>>>>>> consumer config and users might easily mistakenly >>>>>>>>>> configure >>>>>>>>>>>>>>>>> it. Or >>>>>>>>>>>>>>>>>>>>>>>> may be >>>>>>>>>>>>>>>>>>>>>>>>>>>> it's not worth it to add. >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> mb-3 - (minor) The phrasing "the consumer falls >>>>>> back >>>>>>>>> to >>>>>>>>>>>>>>>>> earliest" >>>>>>>>>>>>>>>>>>>>>>>> reads as >>>>>>>>>>>>>>>>>>>>>>>>>>>> if the config were being changed per-partition >>>>>> which >>>>>>>>>> isn't >>>>>>>>>>>>>>>>>>>>>> supported. >>>>>>>>>>>>>>>>>>>>>>>> May >>>>>>>>>>>>>>>>>>>>>>>>>>>> be rephrasing to something like "consumer resolves >>>>>>> the >>>>>>>>>>>>>>> initial >>>>>>>>>>>>>>>>>>>>>>>> position to >>>>>>>>>>>>>>>>>>>>>>>>>>>> start offset for that partition" as if earliest >>>>>> was >>>>>>>>>> applied >>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>>>>>>>>> partition only and auto.offset.reset config is >>>>>>>>>> unchanged. >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>>>>>> Murali >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Apr 28, 2026 at 2:48 PM 黃竣陽 < >>>>>>>>>> [email protected]> >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi chia, >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> I have updated the KIP to include this change. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping Tsai <[email protected]> 於 >>>>>> 2026年4月28日 >>>>>>>>>> 晚上8:03 >>>>>>>>>>>>>>> 寫道: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> hi Jiunn-Yang >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> chia_0: Should we expose the partition creation >>>>>>> time >>>>>>>>>> via >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>> Admin >>>>>>>>>>>>>>>>>>>>>>>> API? >>>>>>>>>>>>>>>>>>>>>>>>>>>>> I assume it would be valuable for users to >>>>>> diagnose >>>>>>>>> and >>>>>>>>>>>>>>>>>>>>>> troubleshoot >>>>>>>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>>>>>>> behavior of auto.offset.reset.latest.max.age >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Chia-Ping >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2026/04/28 10:47:58 黃竣陽 wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hello everyone, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I would like to start a discussion on KIP-1327 >>>>>>>>>> Prevent >>>>>>>>>>>>> Hot >>>>>>>>>>>>>>>>> Data >>>>>>>>>>>>>>>>>>>>>>>> Loss >>>>>>>>>>>>>>>>>>>>>>>>>>>> on >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Partition Expansion for Latest Policy >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> < >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> https://urldefense.com/v3/__https://cwiki.apache.org/confluence/x/KY4mGQ__;!!Ayb5sqE7!qF4q1QzF1RRgP61D7A2xuEai1ky7fepKDKFFvpNBuePikH-ULmT87TvuuZzy5kau5E4y5zMZAmfQQiwZomM$ >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This proposal aims to introduces >>>>>>>>>>>>>>>>>>>>>> auto.offset.reset.latest.max.age, >>>>>>>>>>>>>>>>>>>>>>>> a >>>>>>>>>>>>>>>>>>>>>>>>>>>>> consumer config that lets the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> latest reset policy distinguish newly expanded >>>>>>>>> (hot) >>>>>>>>>>>>>>>>> partitions >>>>>>>>>>>>>>>>>>>>>>>> from >>>>>>>>>>>>>>>>>>>>>>>>>>>>> long-existing (cold) ones. Partitions >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> younger than the configured threshold >>>>>>> automatically >>>>>>>>>> fall >>>>>>>>>>>>>>>>> back >>>>>>>>>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>>>>>>>>>>>>> earliest, preventing silent data loss >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> during topic expansion without forcing a full >>>>>>>>>> historical >>>>>>>>>>>>>>>>>>>>>> reprocess. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best regards, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jiunn-Yang >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >> >> >>
