Hi Manikumar,
Thanks for your comments.

1. I believe that in general, there are not situations in which a dynamic config
change is prevented because of the existence of a resource. So, if we prevented
setting config `group.type=consumer` on resource G of GROUP type
if there was a share group G in existence, it would be a bit weird.

I wonder whether changing the config name to `new.group.type` would help. It’s
ensuring the type of a new group created.

2. The behaviour for a DEAD share group is intended to be the same as a DEAD
consumer group. The group cannot be “reused” again as such, but the group ID
can be used by a new group.

3. Yes. AlterShareGroupOffsets will cause a new SHARE_CHECKPOINT.

4. In common with Admin.deleteConsumerGroups, the underlying Kafka RPC
for Admin.deleteShareGroups is DeleteGroups. This is handled by the group
coordinator and it does this by writing control records (a tombstone in this 
case).
The KIP doesn’t say anything about this because it’s the same as consumer 
groups.
Perhaps it would be sensible to add a GroupType to DeleteGroupsRequest so we can
make sure we are deleting the correct type of group. The fact that there is not 
a specific
RPC for DeleteShareGroups seems correct to me.

5. I prefer using “o.a.k.clients.consumer” because it’s already a public 
package and
many of the classes and interfaces such as ConsumerRecord are in that package.

I definitely need to add more information about how the Admin operations work.
I will add a section to the KIP in the next version, later today. This will 
fill in details for
your questions (3) and (4).

Thanks,
Andrew

> On 14 Feb 2024, at 18:04, Manikumar <manikumar.re...@gmail.com> wrote:
> 
> Hi Andrew,
> 
> Thanks for the KIP. A few comments below.
> 
> 1. kafka-configs.sh (incrementalAlterConfigs) allows you to dynamically
> change the configs. Maybe in this case, we should not allow the user to
> change `group.type` if it's already set.
> 2. What's the behaviour after a group transitions into DEAD state. Do we
> add new control records to reset the state? Can we reuse the group again?
> 3. Are we going to write new control records after the
> AlterShareGroupOffsets API to reset the state?
> 4. Is there any API for DeleteShareGroups? I assume, group co-ordinator is
> going to handle the API. If so, Does this mean the group co-ordinator also
> needs to write control records?
> 5. How about using "org.apache.kafka.clients.consumer.share" package for
> new interfaces/classes?
> 
> 
> Thanks,
> Manikumar

Reply via email to