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