Thanks for the KIP. This has the potential to be a great improvement. A few
initial questions/comments:

1. I think it's premature to talk about target versions for deprecation and
removal of the existing group protocol. Unlike KRaft, this affects a core
client protocol and hence deprecation/removal will be heavily dependent on
how quickly applications migrate to the new protocol.
2. The KIP says we intend to release this in 4.x, but it wasn't made clear
why. If we added that as a way to estimate when we'd deprecate and remove
the group protocol, I also suggest removing this part.
3. We need to flesh out the details of the migration story. It sounds like
we're saying we will support online migrations. Is that correct? We should
explain this in detail. It could also be done as a separate KIP, if it's
easier.
4. I am happy that we are pushing the pattern subscriptions to the server,
but it seems like there could be some tricky compatibility issues. Will we
have a mechanism for users to detect that they need to update their regex
before switching to the new protocol?
5. Related to the last question, will the Java client allow the users to
stick with the current regex engine for compatibility reasons? For example,
it may be handy to keep using client based regex at first to keep
migrations simple and then migrate to server based regexes as a second step.
6. When we say that the group coordinator will be responsible for storing
the configurations and that the configurations will be deleted when the
group is deleted. Will a transition to DEAD trigger deletion of
configurations?
7. Will the choice to store the configs in the group coordinator make it
harder to list all cluster configs and their values?
8. How would someone configure a group before starting the consumers? Have
we considered allowing the explicit creation of groups? Alternatively, the
configs could be decoupled from the group lifecycle.
9. Will the Consumer.subscribe method for the Java client still take a
`java.util.regex.Pattern` of do we have to introduce an overload?
10. I agree with Justine that we should be clearer about the reason to
switch to IBP/metadata.version from the feature flag. Maybe we mean that we
can switch the default for the feature flag to true based on the
metadata.version once we want to make it the default.
11. Some of the protocol APIs don't mention the required ACLs, it would be
good to add that for consistency.
12. It is a bit odd that ConsumerGroupHeartbeat requires "Read Group" even
though it seems to do more than reading.
13. How is topic recreation handled by the consumer with the new group
protocol? It would be good to have a section on this.
14. The KIP mentions we will write the new coordinator in Java. Even though
this is an implementation detail, do we plan to have a new gradle module
for it?
15. Do we have a scalability goal when it comes to how many members the new
group protocol can support?
16. Did we consider having SubscribedTopidIds instead of
SubscribedTopicNames in ConsumerGroupHeartbeatRequest? Is the idea that
since we have to resolve the regex on the server, we can do the same for
the topic name? The difference is that sending the regex is more efficient
whereas sending the topic names is less efficient. Furthermore, delete and
recreation is easier to handle if we have topic ids.

Thanks,
Ismael

On Wed, Jul 6, 2022 at 10:45 AM David Jacot <dja...@confluent.io.invalid>
wrote:

> Hi all,
>
> I would like to start a discussion thread on KIP-848: The Next
> Generation of the Consumer Rebalance Protocol. With this KIP, we aim
> to make the rebalance protocol (for consumers) more reliable, more
> scalable, easier to implement for clients, and easier to debug for
> operators.
>
> The KIP is here: https://cwiki.apache.org/confluence/x/HhD1D.
>
> Please take a look and let me know what you think.
>
> Best,
> David
>
> PS: I will be away from July 18th to August 8th. That gives you a bit
> of time to read and digest this long KIP.
>

Reply via email to