Hi Chia-Ping / David, Thanks for the great suggestion.
How about using “isClassic”? The term like “isLegacy” may be equivocal in the future. For example, if we have a newer version of consumer / share consumer, the meaning will be different for different cases. If we use “isClassic”, for MemberDescription in ClassicGroupDescription, the value can be always “true”. In ConsumerGroupDescription, it’s “true” when it’s a classic member. In ShareGroupDescription, it’s always “false”. Thanks, PoAn > On Nov 23, 2024, at 1:02 AM, Chia-Ping Tsai <chia7...@gmail.com> wrote: > > hi DJ > >> My goal was to have a way to tell the user that his (new) consumer group > may have non-upgraded members yet. I wonder if we could use a boolean to > signal this, e.g. isLegacy. Then, in the CLI we could have a column which > is only displayed when they are non upgraded members. What do you think? > > Yes, this is a good approach, but the downside is that the new isLegacy > field in MemberDescription would be irrelevant for classic and shared > groups. This would require thorough documentation to clarify its purpose. > > Additionally, we could use a boolean instead of a string for the new field > in the RPC to reduce the request size. > Best, > Chia-Ping > > > > David Jacot <dja...@confluent.io.invalid> 於 2024年11月23日 週六 上午12:41寫道: > >> Hi both, >> >> Ah, I understand what you mean now. You're saying that we have two protocol >> fields. One at the group level and one at the member level (the new one). >> The two fields are actually two different things. The former is the name of >> the embedded protocol used in the classic protocol whereas the latter is >> the name of the protocol/api used. This is indeed confusing. >> >> My goal was to have a way to tell the user that his (new) consumer group >> may have non-upgraded members yet. I wonder if we could use a boolean to >> signal this, e.g. isLegacy. Then, in the CLI we could have a column which >> is only displayed when they are non upgraded members. What do you think? >> >> If we cannot find a good way to represent this, we could drop it from this >> KIP too. >> >> Best, >> David >> >> On Fri, Nov 22, 2024 at 5:12 PM PoAn Yang <yangp...@gmail.com> wrote: >> >>> Hi Chia-Ping / David, >>> >>> Thanks for the review and suggestions. >>> >>>>> I don't fully follow your comment so please excuse me if I say >> something >>>>> wrong. >>> >>> I think Chia-Ping wants to say: originally, the default protocol in >>> classic group is “consumer”. >>> After we have a new consumer group, the protocol of a classic member in >>> consumer group is “classic”. >>> The MemberDescription is used by both ClassicGroupDescription and >>> ConsumerGroupDescription. >>> If we add the protocol field to MemberDescription, the protocol of a >>> classic member in classic group is “consumer”, but it’s “classic” in >>> consumer group. >>> To avoid misleading word, we can add a new collection of member protocols >>> to ConsumerGroupDescription only. >>> The original goal is to show member protocol during consumer migration, >> so >>> we don’t need to add this information to ClassicGroupDescription. >>> >>> Please correct me if I misunderstood anything. >>> >>> Thanks, >>> PoAn >>> >>>> On Nov 22, 2024, at 7:00 PM, Chia-Ping Tsai <chia7...@gmail.com> >> wrote: >>>> >>>> hi DJ >>>> >>>>> How about we use another Jira to add “SHARE” to GroupProtocol and >> change >>>> return type of ModernGroup#protocolType? >>>> >>>> This is not my comment ... sorry for the incorrect quote :( >>>> >>>>> A member in a classic group should report "classic". >>>> >>>> I completely agree. However, in this case, >>> ClassicGroupDescription#protocol >>>> returns 'consumer', while ClassicGroupDescription#members[x].protocol >>>> returns 'classic'. This inconsistency feels a bit strange to me. >>>> >>>> Best, >>>> Chia-Ping >>>> >>>> >>>> David Jacot <dja...@confluent.io.invalid> 於 2024年11月22日 週五 下午6:51寫道: >>>> >>>>> Hi Chia, >>>>> >>>>>>> LM4: I agree it’s better to use a type like GroupProtocol enum, but >> I >>>>> would like to align the format with kafka-groups.sh. >>>>> How about we use another Jira to add “SHARE” to GroupProtocol and >> change >>>>> return type of ModernGroup#protocolType? >>>>> >>>>> My understanding is that `GroupProtocol` is used to drive the config >> of >>> the >>>>> `Consumer`. Hence adding `Share` seems wrong to me. Or are you >>> referring to >>>>> another GroupProtocol enum? Perhaps GroupType enum? >>>>> >>>>>> In fact, I'm wondering if we should even add 'protocol' to >>>>> MemberDescription, >>>>> since the field has different values between classic and consumer >>> groups—it >>>>> shows 'consumer' in classic groups, whereas it shows 'classic' in >>> consumer >>>>> groups. Yes, it seems like a typo, but it's true. This inconsistency >>> feels >>>>> confusing to me. For example, users call Admin#describeConsumerGroups >>> and >>>>> see that a member has the 'consumer' protocol when it's in a classic >>> group. >>>>> Then, if the group is upgraded to a consumer group, calling >>>>> Admin#describeConsumerGroups again shows the protocol as 'classic' for >>> the >>>>> same member. >>>>> >>>>> I don't fully follow your comment so please excuse me if I say >> something >>>>> wrong. >>>>> >>>>> I think that it should work as follows: >>>>> * A member in a classic group should report "classic". >>>>> * A member using the consumer protocol in a consumer group should >> report >>>>> "consumer". >>>>> * A member using the classic protocol in a consumer group should >> report >>>>> "classic". >>>>> * A member in a share group should report "share". >>>>> >>>>>> If all we want to do is distinguish classic members in the >>>>> ConsumerGroupDescription, then we shouldn't modify the common >>>>> MemberDescription structure. Instead, we could add a collection to >>>>> ConsumerGroupDescription to trace members using the classic protocol, >>> which >>>>> would allow us to enrich the output of command-line tools. >>>>> >>>>> Personally, I believe that using different collections per protocol >>> types >>>>> is not necessary. A field in the member is more than enough. >>>>> >>>>> Best, >>>>> DJ >>>>> >>>>> On Fri, Nov 22, 2024 at 12:01 PM Chia-Ping Tsai <chia7...@gmail.com> >>>>> wrote: >>>>> >>>>>> hi PoAn >>>>>> >>>>>>> LM4: I agree it’s better to use a type like GroupProtocol enum, but >> I >>>>>> would like to align the format with kafka-groups.sh. >>>>>> How about we use another Jira to add “SHARE” to GroupProtocol and >>> change >>>>>> return type of ModernGroup#protocolType? >>>>>> >>>>>> MemberDescription is also used by ClassicGroupDescription, and in >>> classic >>>>>> groups, the protocol can be an arbitrary string, so we can't use an >>> enum. >>>>>> >>>>>> In fact, I'm wondering if we should even add 'protocol' to >>>>>> MemberDescription, >>>>>> since the field has different values between classic and consumer >>>>> groups—it >>>>>> shows 'consumer' in classic groups, whereas it shows 'classic' in >>>>> consumer >>>>>> groups. Yes, it seems like a typo, but it's true. This inconsistency >>>>> feels >>>>>> confusing to me. For example, users call Admin#describeConsumerGroups >>> and >>>>>> see that a member has the 'consumer' protocol when it's in a classic >>>>> group. >>>>>> Then, if the group is upgraded to a consumer group, calling >>>>>> Admin#describeConsumerGroups again shows the protocol as 'classic' >> for >>>>> the >>>>>> same member. >>>>>> >>>>>> If all we want to do is distinguish classic members in the >>>>>> ConsumerGroupDescription, then we shouldn't modify the common >>>>>> MemberDescription structure. Instead, we could add a collection to >>>>>> ConsumerGroupDescription to trace members using the classic protocol, >>>>> which >>>>>> would allow us to enrich the output of command-line tools. >>>>>> Best, >>>>>> Chia-Ping >>>>>> >>>>>> PoAn Yang <yangp...@gmail.com> 於 2024年11月22日 週五 下午3:46寫道: >>>>>> >>>>>>> Hi Lianet / Jeff, >>>>>>> >>>>>>> Thanks for the review. >>>>>>> >>>>>>> LM5: The kafka-share-groups.sh also uses “—describe” to show offsets >>>>>>> information. >>>>>>> Change to use “—describe —state —verbose” to show group level >>>>> information >>>>>>> in kafka-share-groups.sh. >>>>>>> >>>>>>> LM6: Update the example. >>>>>>> >>>>>>> LM7: Add a description to mention “—verbose” is a new option in >>>>>>> ShareGroupCommandOptions. >>>>>>> >>>>>>> JK2: Yes, add the statement about format change for ASSIGNMENT >> value. >>>>>>> >>>>>>> Thanks, >>>>>>> PoAn >>>>>>> >>>>>>>> On Nov 22, 2024, at 7:35 AM, Jeff Kim <jeffkb...@apache.org> >> wrote: >>>>>>>> >>>>>>>> Hi PoAn, >>>>>>>> >>>>>>>> JK2: Can we state in the KIP that we will reformat the existing >>>>>>>> classic group's `--members --verbose` as well, specifically the >>>>>>>> "ASSIGNMENT" column to include the topic name? >>>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> On 2024/11/21 14:33:37 "Lianet M." wrote: >>>>>>>>> Thanks for the updates PoAn! >>>>>>>>> >>>>>>>>> LM6. Just a nit, under the --describe --state --verbose the header >>>>> is >>>>>>> fine >>>>>>>>> but the example is still missing the --state argument. >>>>>>>>> >>>>>>>>> LM7. Under the Proposed changes for kafka-share-groups.sh, should >> we >>>>>>>>> clearly mention that the KIP adds a new --verbose option? I think >>>>> it's >>>>>>>>> confusing because it's presented as if the option already exists >> and >>>>>>> we're >>>>>>>>> only changing the output (which is the case for >>>>> kafka-consumer-groups >>>>>>> but >>>>>>>>> not for kafka-share-groups) >>>>>>>>> >>>>>>>>> That's all on my side. Thanks! >>>>>>>>> >>>>>>>>> Lianet >>>>>>>>> >>>>>>>>> On Wed, Nov 20, 2024 at 11:12 PM PoAn Yang <yangp...@gmail.com> >>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi Lianet / Jeff, >>>>>>>>>> >>>>>>>>>> Thanks for review and suggestions. >>>>>>>>>> >>>>>>>>>> LM4: At group level, the protocol field is from >>>>>>> ModernGroup#protocolType. >>>>>>>>>> It’s a string. >>>>>>>>>> The value is defined in different places like >>>>>> ShareGroup#PROTOCOL_TYPE >>>>>>> and >>>>>>>>>> ConsumerProtocol#PROTOCOL_TYPE. >>>>>>>>>> In KIP-1043 < >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=305171038#KIP1043:Administrationofgroups-kafka-groups.sh >>>>>>>> , >>>>>>>>>> the kafka-groups.sh also shows protocol like “classic” / >>>>> “consumer” / >>>>>>>>>> “share”. >>>>>>>>>> I agree it’s better to use a type like GroupProtocol enum, but I >>>>>> would >>>>>>>>>> like to align the format with kafka-groups.sh. >>>>>>>>>> How about we use another Jira to add “SHARE” to GroupProtocol and >>>>>>> change >>>>>>>>>> return type of ModernGroup#protocolType? >>>>>>>>>> >>>>>>>>>> LM5 / JK1: Sorry, I misunderstood LM3, so I deleted —state in the >>>>>>> title. >>>>>>>>>> You’re correct. I would like to use `—describe —state —verbose` >> to >>>>>> show >>>>>>>>>> group level information. >>>>>>>>>> For `—describe —verbose`, it will show output as same as >> `—describe >>>>>>>>>> —offsets —verbose`, >>>>>>>>>> because `—describe` also shows output as same as `—describe >>>>>> —offsets`. >>>>>>>>>> >>>>>>>>>> JK2: Yes, I only use consumer group in the sample output, but the >>>>>>> classic >>>>>>>>>> group will use the same format as well. >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> PoAn >>>>>>>>>> >>>>>>>>>>> On Nov 21, 2024, at 8:28 AM, Jeff Kim <jeffkb...@apache.org> >>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Hi PoAn, >>>>>>>>>>> >>>>>>>>>>> Thanks for the KIP. I have some questions: >>>>>>>>>>> >>>>>>>>>>> JK1: (Realized this is similar to LM5) On `--describe --verbose` >>>>>>>>>> proposed changes - doesn't `--describe $group` default to >> printing >>>>>> the >>>>>>>>>> offsets? Perhaps you're referring to the `--state` argument? >> Also, >>>>>>> would >>>>>>>>>> that mean the default `--describe $group --verbose` command would >>>>> not >>>>>>> print >>>>>>>>>> the added field to `--offsets verbose` (leader-epoch) or would >> it? >>>>>>>>>>> >>>>>>>>>>> JK2: Looking at ConsumerGroupCommand.java, the existing >>>>> "ASSIGNMENT" >>>>>>>>>> column under `--members --verbose` does group the topic >> partitions >>>>> by >>>>>>> topic >>>>>>>>>> but does not prefix the grouping with the topic name like you're >>>>>>> proposal: >>>>>>>>>> "my_topic:0,1;new_topic:0,1". Should we do apply the same format >>>>> for >>>>>>> the >>>>>>>>>> classic group as well? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 2024/11/20 21:32:41 "Lianet M." wrote: >>>>>>>>>>>> Hello PoAn, just of couple more minor comments: >>>>>>>>>>>> >>>>>>>>>>>> LM4. Regarding the new “protocol” field added to >>>>> MemberDescription. >>>>>>>>>> Should >>>>>>>>>>>> we consider reusing the existing GroupProtocol enum instead of >>>>>>> String? >>>>>>>>>>>> (It’s the one we use from the consumer side to refer to the >>>>>> protocol >>>>>>> in >>>>>>>>>>>> use, just missing Share I notice). >>>>>>>>>>>> >>>>>>>>>>>> LM5. Regarding the change to the output for >>>>> kafka-consumer-groups, >>>>>>> the >>>>>>>>>>>> command shown does not include the —state option, but the >> output >>>>>>> shows >>>>>>>>>>>> state info (state, #members, epochs). I would guess that we >> want >>>>> to >>>>>>>>>> modify >>>>>>>>>>>> the output only when we describe a group with the —state >> —verbose >>>>>>>>>> option, >>>>>>>>>>>> is my understanding right? If my understanding is right we’re >>>>> just >>>>>>>>>> missing >>>>>>>>>>>> adding the —state in the example, and the KIP does not >> introduce >>>>>> any >>>>>>>>>>>> changes to the —describe —verbose option. (If not, it would >> mean >>>>> a >>>>>>>>>> bigger >>>>>>>>>>>> change to the output of —describe —verbose which I expect is >> not >>>>>> the >>>>>>>>>>>> intention?) >>>>>>>>>>>> >>>>>>>>>>>> Thanks! >>>>>>>>>>>> >>>>>>>>>>>> Lianet >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Nov 20, 2024 at 2:12 AM PoAn Yang <yangp...@gmail.com> >>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Chia-Ping, >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks for the review and suggestions. >>>>>>>>>>>>> >>>>>>>>>>>>> CI0: Thanks for the reminder. Update validVersions in >>>>>>>>>>>>> ConsumerGroupDescribeRequest to 0-1. >>>>>>>>>>>>> >>>>>>>>>>>>> CI1: Yes, I use `ConsumerGroupMember#useClassicProtocol` to >>>>> check >>>>>>>>>> whether >>>>>>>>>>>>> a member in consumer group uses “classic” or “consumer” >>>>> protocol. >>>>>>>>>>>>> >>>>>>>>>>>>> CI2: Yes, a member in share group always uses “share” >> protocol. >>>>>>>>>>>>> >>>>>>>>>>>>> CI3: Add a table to show meaning of “classic”, “consumer”, and >>>>>>> “share” >>>>>>>>>>>>> protocol. >>>>>>>>>>>>> >>>>>>>>>>>>> BTW, the vote thread is in >>>>>>>>>>>>> >>>>> https://lists.apache.org/thread/rb25tf75tzf4c7jqqldlo5jh9w8chsq6. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> PoAn >>>>>>>>>>>>> >>>>>>>>>>>>>> On Nov 20, 2024, at 11:46 AM, Chia-Ping Tsai < >>>>>> chia7...@apache.org> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> hi PoAn >>>>>>>>>>>>>> >>>>>>>>>>>>>> CI0: We have to bump the version of >>>>> ConsumerGroupDescribeRequest >>>>>>> as >>>>>>>>>>>>> well, so server can distinguish the new and old behavior. >>>>>>>>>>>>>> >>>>>>>>>>>>>> CI1: the type of new filed is string, so I guess you plan to >>>>> use >>>>>>>>>>>>> `ConsumerGroupMember#useClassicProtocol` [0] flag to return >>>>> either >>>>>>>>>>>>> "classic" or "consumer", right? >>>>>>>>>>>>>> >>>>>>>>>>>>>> CI2: `MemberDescription` is used by `ShareGroupDescription` >>>>> too, >>>>>> so >>>>>>>>>> the >>>>>>>>>>>>> new filed protocol in shared group is always "shared", right? >>>>>>>>>>>>>> >>>>>>>>>>>>>> CI3: Could you consider adding a table to show the value of >> the >>>>>>>>>> protocol >>>>>>>>>>>>> field in each case? Andrew has a beautiful table in KIP-1043 >>>>> that >>>>>>>>>> lists all >>>>>>>>>>>>> possible protocol names. >>>>>>>>>>>>>> >>>>>>>>>>>>>> [0] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://github.com/apache/kafka/blob/441a6d0b790f4a17b454caeea7588a6b90fbd9db/group-coordinator/src/main/java/org/apache/kafka/coordinator/group/modern/consumer/ConsumerGroupMember.java#L454 >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Best, >>>>>>>>>>>>>> Chia-Ping >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 2024/11/19 15:45:16 PoAn Yang wrote: >>>>>>>>>>>>>>> Hi David, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks for the reminder. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> DJ4: Add related content to the KIP. >>>>>>>>>>>>>>> Bump validVersions in ConsumerGroupDescribeResponse to >> “0-1”. >>>>>>>>>>>>>>> Add a new field “Protocol” to ConsumerGroupDescribeResponse. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>> PoAn >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Nov 19, 2024, at 3:57 PM, David Jacot >>>>>>>>>> <dja...@confluent.io.INVALID> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi PoAn, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> DJ4: Could you please also include the required changes to >>>>> the >>>>>>>>>>>>>>>> ConsumerGroupDescribed API in the public interface section? >>>>> We >>>>>>>>>>>>> basically >>>>>>>>>>>>>>>> need to bump the version, add the new field, etc. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>> David >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Mon, Nov 18, 2024 at 5:40 AM PoAn Yang < >>>>> yangp...@gmail.com> >>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi David, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> DJ4: Add a new field protocol to MemberDescription, >>>>>>>>>>>>>>>>> so the command line tool can show protocol information >> when >>>>>>> users >>>>>>>>>>>>> describe >>>>>>>>>>>>>>>>> members. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> If there is no further suggestion, I will start a vote >>>>> thread >>>>>>>>>> today. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>> PoAn >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Nov 15, 2024, at 11:50 PM, David Jacot >>>>>>>>>>>>> <dja...@confluent.io.INVALID> >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> DJ2: Using "-" sounds good to me. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> DJ3: That seems reasonable to me. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> DJ4: Why not add it right now? I don't want to change the >>>>>>> output >>>>>>>>>> of >>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>> tool too many times. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Best, >>>>>>>>>>>>>>>>>> David >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Fri, Nov 15, 2024 at 3:23 PM PoAn Yang < >>>>>> yangp...@gmail.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Hi David / Andrew, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thanks for review. Thanks Andrew for picking up >>>>>>>>>>>>> kafka-share-groups.sh >>>>>>>>>>>>>>>>>>> implementation. >>>>>>>>>>>>>>>>>>> I will handle kafka-consumer-groups.sh. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> DJ3: After discussing with @Chia-Ping Tsai, we think >> that >>>>>>> using >>>>>>>>>> new >>>>>>>>>>>>>>>>> format >>>>>>>>>>>>>>>>>>> is more clear. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> The new format will be like >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> <topic-name1>:<partition-id1>,<partition-id2>;<topic-name2>:<partition-id1>,<partition-id2> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Using colon(:) to concat topic name and partition IDs. >>>>>>>>>>>>>>>>>>> Using comma(,) to concat partition IDs within same topic >>>>>> name. >>>>>>>>>>>>>>>>>>> Using semicolon(;) to concat topic strings. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> AS3: Fix it with kafka-share-groups.sh. Thanks. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> If there is no further suggestion, I will start a vote >>>>>> thread >>>>>>>>>> next >>>>>>>>>>>>>>>>> Monday. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>> PoAn >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Nov 14, 2024, at 9:05 PM, Andrew Schofield < >>>>>>>>>>>>>>>>>>> andrew_schofield_j...@outlook.com> wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi PoAn, >>>>>>>>>>>>>>>>>>>> DJ2: I was just going to comment that "-" would be a >> more >>>>>>>>>>>>> appropriate >>>>>>>>>>>>>>>>>>> missing value, but >>>>>>>>>>>>>>>>>>>> you got there first. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> AS3: The examples for kafka-share-groups.sh include >>>>>>>>>>>>>>>>>>> kafka-consumer-groups.sh in the >>>>>>>>>>>>>>>>>>>> command line. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> If this is accepted in time, I'm happy to pick up the >>>>>>>>>>>>> implementation of >>>>>>>>>>>>>>>>>>> the share groups >>>>>>>>>>>>>>>>>>>> part of this if it helps. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>> Andrew >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> ________________________________________ >>>>>>>>>>>>>>>>>>>> From: Frank Yang <yangp...@gmail.com> >>>>>>>>>>>>>>>>>>>> Sent: 14 November 2024 10:48 >>>>>>>>>>>>>>>>>>>> To: dev@kafka.apache.org <dev@kafka.apache.org> >>>>>>>>>>>>>>>>>>>> Subject: Re: [DISCUSS] KIP-1099: Extend >>>>>> kafka-consumer-groups >>>>>>>>>>>>> command >>>>>>>>>>>>>>>>>>> line tool to support new consumer group >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi David, >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Thanks for the review and suggestion! I would like to >> get >>>>>>> this >>>>>>>>>> in >>>>>>>>>>>>> AK >>>>>>>>>>>>>>>>> 4.0 >>>>>>>>>>>>>>>>>>> as well. I will do my best. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> DJ1: Update KIP to put GROUP-EPOCH and >>>>>>> TARGET-ASSIGNMENT-EPOCH >>>>>>>>>>>>> before >>>>>>>>>>>>>>>>>>> #MEMBERS. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> DJ2: I prefer to follow current missing column value >> “-“. >>>>>>>>>>>>> (reference < >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://github.com/apache/kafka/blob/18199028a672fd973ac37bf26316994babc2a6da/tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java#L92 >>>>>>>>>>>>>>>>>>>> ) >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> DJ3: Update KIP to use CURRENT-EPOCH CURRENT-ASSIGNMENT >>>>>>>>>>>>> TARGET-EPOCH >>>>>>>>>>>>>>>>>>> TARGET-ASSIGNMENT. >>>>>>>>>>>>>>>>>>>> Remove GROUP-EPOCH. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> For assignment value, it follows current output >>>>> (reference >>>>>> < >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://github.com/apache/kafka/blob/18199028a672fd973ac37bf26316994babc2a6da/tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java#L413-L418 >>>>>>>>>>>>>>>>>> ). >>>>>>>>>>>>>>>>>>> I think the form of `topicid-partitionid` is more clear. >>>>>>>>>>>>>>>>>>>> If we would like to use this form, I will update both >>>>>> output >>>>>>> in >>>>>>>>>>>>>>>>>>> kafka-consumer-groups.sh and kafka-share-groups.sh. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> DJ4: It looks like DescribeGroupsResponseData only has >>>>>>> protocol >>>>>>>>>>>>> type at >>>>>>>>>>>>>>>>>>> group level. >>>>>>>>>>>>>>>>>>>> Both DescribeGroupsResponseData and >>>>>>>>>>>>> ConsumerGroupDescribeResponseData >>>>>>>>>>>>>>>>>>> don’t have protocol at member level. >>>>>>>>>>>>>>>>>>>> Could we use a followup to add it? >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> DJ5: Update KIP to put LEADER-EPOCH before >>>>> CURRENT-OFFSET. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>> PoAn >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Nov 14, 2024, at 3:43 PM, David Jacot >>>>>>>>>>>>> <dja...@confluent.io.INVALID >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Hi PoAn, >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thanks for the KIP! I have a few minor >>>>>> comments/suggestions: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> DJ1: In the output of `--describe --verbose`, I would >>>>>>> suggest >>>>>>>>>>>>> putting >>>>>>>>>>>>>>>>>>>>> `GROUP-EPOCH` and `TARGET-ASSIGNMENT-EPOCH` before >>>>>>> `#MEMBERS`. >>>>>>>>>>>>>>>>>>>>> DJ2: Continuing on the above, I assume that we will >>>>> print >>>>>>> out >>>>>>>>>> N/A >>>>>>>>>>>>> for >>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>> fields not supported by classic groups. Is this >> correct? >>>>>>>>>>>>>>>>>>>>> DJ3: In the output of `--describe --members >> --verbose`, >>>>> I >>>>>>>>>> wonder >>>>>>>>>>>>> if we >>>>>>>>>>>>>>>>>>>>> should use the following order and terms: >> CURRENT-EPOCH >>>>>>>>>>>>>>>>>>> CURRENT-ASSIGNMENT >>>>>>>>>>>>>>>>>>>>> TARGET-EPOCH TARGET-ASSIGNMENT . I would remove the >>>>>>> GROUP-EPOCH >>>>>>>>>>>>>>>>> because >>>>>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>>>>> is already in the group description. The value `(0)` >>>>> used >>>>>>> for >>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>> assignment is incorrect. Here I suppose that we will >>>>> print >>>>>>> out >>>>>>>>>> the >>>>>>>>>>>>>>>>> list >>>>>>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>>>>>>> partitions in the form of `topicid-partitionid`. >>>>>>>>>>>>>>>>>>>>> DJ4: Continuing on the above, I wonder if we should >> also >>>>>> add >>>>>>>>>> the >>>>>>>>>>>>>>>>>>> protocol >>>>>>>>>>>>>>>>>>>>> used `classic` or `consumer`. For context, it is >>>>> possible >>>>>> to >>>>>>>>>> have >>>>>>>>>>>>>>>>>>> `classic` >>>>>>>>>>>>>>>>>>>>> members and `consumer` members in a `consumer` group >>>>>> during >>>>>>> an >>>>>>>>>>>>> online >>>>>>>>>>>>>>>>>>>>> upgrade from the classic protocol to the consumer >>>>>> protocol. >>>>>>>>>> Having >>>>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>>>>>>> information may be handy for administrators. What do >> you >>>>>>> think? >>>>>>>>>>>>>>>>>>>>> DJ5: In the output of `--describe --offsets >> --verbose`, >>>>> I >>>>>>> would >>>>>>>>>>>>>>>>> suggest >>>>>>>>>>>>>>>>>>>>> putting `LEADER-EPOCH` closer to `CURRENT-OFFSET`. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> It would be great if we could get this one in AK 4.0 >> as >>>>> it >>>>>>>>>>>>> changes the >>>>>>>>>>>>>>>>>>>>> output of the command. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>> DJ >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Fri, Nov 1, 2024 at 7:40 AM Frank Yang < >>>>>>> yangp...@gmail.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Hi Sean / Andrew / Lianet, >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Thanks for all your review and suggestions. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> AS1, LM1, LM4: Change to add KIP-848 information when >>>>>> users >>>>>>>>>> give >>>>>>>>>>>>>>>>>>> —verbose >>>>>>>>>>>>>>>>>>>>>> option. >>>>>>>>>>>>>>>>>>>>>> —describe —verbose: shows group epoch and target >>>>>> assignment >>>>>>>>>>>>> epoch. >>>>>>>>>>>>>>>>>>>>>> —describe —members —verbose: shows above information, >>>>>>> member >>>>>>>>>>>>> epoch, >>>>>>>>>>>>>>>>> and >>>>>>>>>>>>>>>>>>>>>> target assignment. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> AS2: Change to use MEMBER-EPOCH to align with KIP-848 >>>>>>>>>> definition. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> LM2: For classic group, it doesn’t have epoch, so I >> use >>>>>>>>>> Optional >>>>>>>>>>>>>>>>>>> fields in >>>>>>>>>>>>>>>>>>>>>> ConsumerGroupDescription. >>>>>>>>>>>>>>>>>>>>>> For share group, it relies on KIP-848. It must have >>>>>> epoch, >>>>>>> so >>>>>>>>>> I >>>>>>>>>>>>> use >>>>>>>>>>>>>>>>> int >>>>>>>>>>>>>>>>>>>>>> fields in ShareGroupDescription. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> LM3: Remove —state change. We can get group level >>>>>>> information >>>>>>>>>> by >>>>>>>>>>>>>>>>>>> —describe >>>>>>>>>>>>>>>>>>>>>> —verbose. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> SQ1: Add LEADER-EPOCH when users give —describe >>>>> —offsets >>>>>>>>>>>>> —verbose. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Thanks. >>>>>>>>>>>>>>>>>>>>>> PoAn >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> On Nov 1, 2024, at 5:08 AM, Lianet M. < >>>>>> liane...@gmail.com >>>>>>>> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Hello Frank, thanks for the KIP! A few comments: >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> LM1. I strongly agree with Andrew's suggestion of >>>>> moving >>>>>>> this >>>>>>>>>>>>> into a >>>>>>>>>>>>>>>>>>>>>>> --verbose option. I expect someone would only >> attempt >>>>> to >>>>>>> make >>>>>>>>>>>>> sense >>>>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>> epochs while debugging an issue, not while trying to >>>>>> view >>>>>>> the >>>>>>>>>>>>> group >>>>>>>>>>>>>>>>> or >>>>>>>>>>>>>>>>>>>>>>> member's info. (Also member-epoch makes more sense >> to >>>>>> me, >>>>>>>>>> even >>>>>>>>>>>>> more >>>>>>>>>>>>>>>>>>> if we >>>>>>>>>>>>>>>>>>>>>>> end up agreeing in a --verbose). Related to both >>>>> issues, >>>>>>> my >>>>>>>>>>>>> take is >>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>>>> whoever is close to the protocol will expect >>>>>> member-epoch, >>>>>>>>>>>>> whoever >>>>>>>>>>>>>>>>> is >>>>>>>>>>>>>>>>>>> not >>>>>>>>>>>>>>>>>>>>>>> will probably won't even need to see the epochs at >>>>> all. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> LM2. Why are the epochs defined as Optional (don't >> we >>>>>>> expect >>>>>>>>>> to >>>>>>>>>>>>>>>>> always >>>>>>>>>>>>>>>>>>>>>> have >>>>>>>>>>>>>>>>>>>>>>> them? with 0 initially, defined on the broker side >> for >>>>>> the >>>>>>>>>> group >>>>>>>>>>>>>>>>> ones, >>>>>>>>>>>>>>>>>>>>>> and >>>>>>>>>>>>>>>>>>>>>>> client side for the member) >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> LM3. Why is the KIP including the –state option in >> the >>>>>>>>>> proposed >>>>>>>>>>>>>>>>>>> changes? >>>>>>>>>>>>>>>>>>>>>> ( >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=327977411#KIP1099:Extendkafkaconsumergroupscommandlinetooltosupportnewconsumergroup---state >>>>>>>>>>>>>>>>>>>>>>> ). >>>>>>>>>>>>>>>>>>>>>>> I get that the output would change in that example, >>>>> but >>>>>>> it’s >>>>>>>>>> not >>>>>>>>>>>>>>>>>>> because >>>>>>>>>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>>>>>>>>> any change to the –state option itself. It's because >>>>> of >>>>>>> the >>>>>>>>>>>>> change >>>>>>>>>>>>>>>>>>>>>> proposed >>>>>>>>>>>>>>>>>>>>>>> to the –described (required with the --state), and >> the >>>>>>>>>> changes >>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>>>>>>> --describe are already explained above (seems >>>>> confusing, >>>>>>> got >>>>>>>>>> me >>>>>>>>>>>>>>>>>>> looking >>>>>>>>>>>>>>>>>>>>>> for >>>>>>>>>>>>>>>>>>>>>>> a change to the state filter which seemed >> unrelated). >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> LM4. Group epoch and target assignment epoch are >>>>>>> conceptually >>>>>>>>>>>>> at the >>>>>>>>>>>>>>>>>>>>>> group >>>>>>>>>>>>>>>>>>>>>>> level. vs member epoch that lands at a member level. >>>>> So >>>>>>>>>> wonder >>>>>>>>>>>>> if we >>>>>>>>>>>>>>>>>>>>>> should >>>>>>>>>>>>>>>>>>>>>>> show them accordingly (ex. using the --verbose >> option) >>>>>>>>>>>>>>>>>>>>>>> –describe –verbose => shows group epoch and target >>>>>>> assignment >>>>>>>>>>>>> epoch >>>>>>>>>>>>>>>>>>>>>>> –describe –members –verbose => shows member >>>>>> epoch >>>>>>>>>>>>> (along >>>>>>>>>>>>>>>>>>>>>>> with group epoch and target assignment epoch) >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Thanks! >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Lianet >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> On Thu, Oct 31, 2024 at 7:30 AM Andrew Schofield < >>>>>>>>>>>>>>>>>>>>>>> andrew_schofield_j...@outlook.com> wrote: >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Hi PoAn, >>>>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP. I have a few comments. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> AS1: It seems to me that these new additions are >> most >>>>>>>>>> useful to >>>>>>>>>>>>>>>>>>> people >>>>>>>>>>>>>>>>>>>>>>>> trying to understand >>>>>>>>>>>>>>>>>>>>>>>> the progress of rebalancing in quite some detail. >> The >>>>>>>>>>>>> information >>>>>>>>>>>>>>>>> is >>>>>>>>>>>>>>>>>>>>>>>> really not understandable >>>>>>>>>>>>>>>>>>>>>>>> for most users who do not have deep knowledge of >>>>>>>>>> KIP-848/932. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> As a result, I suggest for kafka-share-groups.sh >> that >>>>>> you >>>>>>>>>> add a >>>>>>>>>>>>>>>>>>>>>> --members >>>>>>>>>>>>>>>>>>>>>>>> --verbose option >>>>>>>>>>>>>>>>>>>>>>>> and only include the new information in the output >>>>> for >>>>>>> that >>>>>>>>>>>>> option, >>>>>>>>>>>>>>>>>>>>>> rather >>>>>>>>>>>>>>>>>>>>>>>> than changing the >>>>>>>>>>>>>>>>>>>>>>>> non-verbose --members output. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> I also make a similar suggestion for >>>>>>>>>> kafka-consumer-groups.sh >>>>>>>>>>>>>>>>>>> --members >>>>>>>>>>>>>>>>>>>>>>>> and only add the >>>>>>>>>>>>>>>>>>>>>>>> new information for the --verbose output. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> AS2: I strongly suggest that you use MEMBER-EPOCH >>>>>>> instead of >>>>>>>>>>>>>>>>>>>>>>>> CONSUMER-EPOCH. >>>>>>>>>>>>>>>>>>>>>>>> I think it's more confusing not following the >>>>>>> terminology of >>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>> KIPs. >>>>>>>>>>>>>>>>>>>>>> For >>>>>>>>>>>>>>>>>>>>>>>> one thing, >>>>>>>>>>>>>>>>>>>>>>>> we already have "member" in the admin client such >> as >>>>>>>>>>>>>>>>>>> MemberDescription. >>>>>>>>>>>>>>>>>>>>>>>> It's not a >>>>>>>>>>>>>>>>>>>>>>>> new term. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>> Andrew >>>>>>>>>>>>>>>>>>>>>>>> ________________________________________ >>>>>>>>>>>>>>>>>>>>>>>> From: PoAn Yang <pay...@apache.org> >>>>>>>>>>>>>>>>>>>>>>>> Sent: 25 October 2024 13:55 >>>>>>>>>>>>>>>>>>>>>>>> To: dev@kafka.apache.org <dev@kafka.apache.org> >>>>>>>>>>>>>>>>>>>>>>>> Subject: Re: [DISCUSS] KIP-1099: Extend >>>>>>>>>> kafka-consumer-groups >>>>>>>>>>>>>>>>> command >>>>>>>>>>>>>>>>>>>>>> line >>>>>>>>>>>>>>>>>>>>>>>> tool to support new consumer group >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Hi Lucas, >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Thanks for the review! >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> 1) Yes, I add related change for >>>>> kafka-share-groups.sh >>>>>> to >>>>>>>>>> the >>>>>>>>>>>>> KIP. >>>>>>>>>>>>>>>>>>> Could >>>>>>>>>>>>>>>>>>>>>>>> you take a look? Thanks for the suggestion. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> 2) We use CONSUMER-ID as member ID. If we use >>>>>>> MEMBER-EPOCH >>>>>>>>>>>>> here, >>>>>>>>>>>>>>>>>>> users >>>>>>>>>>>>>>>>>>>>>> may >>>>>>>>>>>>>>>>>>>>>>>> confuse what is different between CONSUMER and >>>>> MEMBER. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>> PoAn >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> On 2024/10/23 13:28:17 Lucas Brutschy wrote: >>>>>>>>>>>>>>>>>>>>>>>>> Hi Frank, >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> thanks for the KIP! >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> 1) For consistency, should we do the same for >>>>>>>>>>>>>>>>>>>>>>>>> kafka-share-groups.sh, ShareGroupDescription, >> etc. ? >>>>>>> Even >>>>>>>>>> if >>>>>>>>>>>>> we do >>>>>>>>>>>>>>>>>>> not >>>>>>>>>>>>>>>>>>>>>>>>> implement it right now if the share group >>>>>> implementation >>>>>>>>>> may >>>>>>>>>>>>> still >>>>>>>>>>>>>>>>>>> be >>>>>>>>>>>>>>>>>>>>>>>>> incomplete, it may make sense to include it in the >>>>>> KIP. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> 2) Why call it CONSUMER-EPOCH, not MEMBER-EPOCH? >>>>> That >>>>>>> would >>>>>>>>>>>>> seem >>>>>>>>>>>>>>>>>>> more >>>>>>>>>>>>>>>>>>>>>>>>> consistent. >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>>>>>>>>>>>>> Lucas >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Oct 23, 2024 at 2:41 PM Frank Yang < >>>>>>>>>>>>> yangp...@gmail.com> >>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> I would like to kick off the discussion of >>>>> KIP-1099. >>>>>>> This >>>>>>>>>> KIP >>>>>>>>>>>>>>>>>>> enhances >>>>>>>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>>>>>>> kafka-consumer-groups tools to include state >> which >>>>> is >>>>>>>>>>>>> introduced >>>>>>>>>>>>>>>>> by >>>>>>>>>>>>>>>>>>>>>>>> KIP-848. >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> KIP-1099: Extend kafka-consumer-groups command >> line >>>>>>> tool >>>>>>>>>> to >>>>>>>>>>>>>>>>> support >>>>>>>>>>>>>>>>>>>>>> new >>>>>>>>>>>>>>>>>>>>>>>>>> consumer group - Apache Kafka - Apache Software >>>>>>> Foundation >>>>>>>>>>>>>>>>>>>>>>>>>> < >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> cwiki.apache.org >>>>>>>>>>>>>>>>>>>>>>>>>> < >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> [image: favicon.ico] >>>>>>>>>>>>>>>>>>>>>>>>>> < >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> < >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>>> >>>>> >>> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Thank you, >>>>>>>>>>>>>>>>>>>>>>>>>> PoAn >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>> >>> >>> >>