Thanks, LGTM.

On Mon, Nov 25, 2024 at 4:26 PM PoAn Yang <yangp...@gmail.com> wrote:

> Hi David,
>
> Thanks for the feedback.
>
> Yes, I agree that the “UPGRADED” column name is better. I updated the KIP.
>
> Best,
> PoAn
>
> > On Nov 25, 2024, at 11:11 PM, PoAn Yang <yangp...@gmail.com> wrote:
> >
> > Hi Andrew,
> >
> > Thanks for the feedback.
> >
> > AS4: Change TARGET-ASSIGNMENT-EPOCH to ASSIGNMENT-EPOCH for “—describe
> —state —verbose" in kafka-share-groups.sh.
> >
> > AS5: Remove TARGET-EPOCH and TARGET-ASSIGNMENT.
> > Change CURRENT-EPOCH to MEMBER-EPOCH and CURRENT-ASSIGNMENT to
> ASSIGNMENT for “—describe —member —verbose” in kafka-share-groups.sh.
> >
> > Thanks,
> > PoAn
> >
> >> On Nov 25, 2024, at 10:48 PM, Andrew Schofield <
> andrew_schofield_j...@outlook.com> wrote:
> >>
> >> Hi PoAn,
> >> I've taken another pass over the KIP and have some more comments around
> the share
> >> group support.
> >>
> >> AS4: Share groups do not have the concept of a target assignment. As a
> result,
> >> the verbose state TARGET-ASSIGNMENT-EPOCH is a bit misleading from my
> >> point of view. ASSIGNMENT-EPOCH is better.
> >>
> >> AS5: Similarly for the verbose members output, the TARGET-EPOCH and
> >> TARGET-ASSIGNMENT are not really appropriate. Personally, I would prefer
> >> just MEMBER-EPOCH and ASSIGNMENT, and remove the "target" fields.
> >>
> >> Thanks,
> >> Andrew
> >>
> >> ________________________________________
> >> From: PoAn Yang <yangp...@gmail.com>
> >> Sent: 24 November 2024 15:08
> >> 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 Chia-Ping,
> >>
> >> Thanks for the suggestion.
> >>
> >> The “isClassic” field in ConsumerGroupDescribeResponse is a boolean
> value, so we can’t use it as the protocol string.
> >> I change the “PROTOCOL” column to “IS-CLASSIC” in
> kafka-consumer-groups.sh.
> >> It returns “true” if a member is in a classic group or it’s a classic
> member in a consumer group.
> >> In other cases, it returns “false”.
> >>
> >> I have a draft implementation in
> https://github.com/apache/kafka/pull/17872.
> >>
> >> Thanks,
> >> PoAn
> >>
> >>> On Nov 23, 2024, at 1:05 PM, Chia-Ping Tsai <chia7...@gmail.com>
> wrote:
> >>>
> >>> hi PoAn
> >>>
> >>> `isClassic` is good to me :)
> >>>
> >>> Best,
> >>> Chia-Ping
> >>>
> >>> PoAn Yang <yangp...@gmail.com> 於 2024年11月23日 週六 下午12:35寫道:
> >>>
> >>>> 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
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>>>
> >>>>
> >
>
>
>

Reply via email to