Hi, Andrew,

Thanks for the updates. Looks reasonable to me.

I don't see ShareConsumer.acknowledge(String, int, long, AcknowledgeType)
in the KIP or the code. There are only the following two.
    void acknowledge(ConsumerRecord<K, V> record);
    void acknowledge(ConsumerRecord<K, V> record, AcknowledgeType type);

Thanks,

Jun

On Fri, Jul 11, 2025 at 2:30 AM Andrew Schofield <
andrew_schofield_j...@outlook.com> wrote:

> Hi,
> As we've written the code for KIP-932, we've made some small changes to
> the KIP
> to correct mistakes, align with other accepted KIPs and fix some omissions
> picked
> up during PR reviews. We also have experience of people writing
> applications
> against the ShareConsumer interface and have corrected a couple of
> problems.
>
> * Using share.version=1 as the switch to enable share groups. This aligns
> with group.version=1 for KIP-848 and streams.version=1 for KIP-1071.
> * Aligned with KIP-1043 by using a common GroupState and removing
> Admin.listShareGroups (because Admin.listGroups handles all group types).
> * Corrected the topic authorizations on admin requests.
> * Added SHARE_SESSION_LIMIT_REACHED error code to give proper
> consumer error handling when the limit is reached.
> * Adjusted ShareFetch RPC request to remove PartitionMaxBytes and
> add BatchSize to improve efficiency of fetching and state management.
> * Changed the rules for explicit acknowledgement because, as originally
> written, it was simple to write an application that went into an infinite
> loop.
> Now, when using explicit acknowledgement, it is mandatory to acknowledge
> every single record, which allows an exception to be thrown if the
> application
> does not do this properly.
> * Added a method overload with signature
> ShareConsumer.acknowledge(String, int, long, AcknowledgeType) to go with
> ShareConsumer.acknowledge(ConsumerRecord, AcknowledgeType).
> This is because the KIP said it would be possible to choose the acknowledge
> type in the event of RecordDeserializationException. However, because the
> application does not have the ConsumerRecord instance when the
> deserialization
> fails, but it does have topic name, partition and offset, adding an
> overloaded
> method enables the application to choose the acknowledge type.
> * The SimpleAssignor no longer uses hashing as part of making assignments.
> In practice, this hindered the assignment computation. SimpleAssignor
> achieves
> the balance and stickiness described previously, just without hashing.
> * Added
> org.apache.kafka.coordinator.group.api.assignor.GroupSpec.isPartitionAssignable
> so that partitions which are in the process of being initialized in the
> share coordinator
> can be omitted from assignment computation.
> * Removed the ShareGroupPartitionMetadata record type (KIP-1101).
> * Added timestamps to ShareSnapshot records so it is possible to manage
> pruning of records correctly.
> * Adjusted some of the config defaults and limits such as maximum for lock
> duration which didn't make sense.
>
> KIP-932 mentions some future work and I have started to create new KIPs
> for this.
>
> Thanks,
> Andrew
> ________________________________________
> From: Jun Rao <j...@confluent.io.INVALID>
> Sent: 15 August 2024 19:07
> To: dev@kafka.apache.org <dev@kafka.apache.org>
> Subject: Re: [VOTE] KIP-932: Queues for Kafka
>
> Hi, Andrew,
>
> Thanks for the clarification. Sounds good.
>
> Jun
>
> On Thu, Aug 15, 2024 at 2:53 AM Andrew Schofield <
> andrew_schofi...@live.com>
> wrote:
>
> > Hi Jun,
> > Thanks for the questions.
> >
> > 1. The PartitionMetadata is only stored if there is rack ID information.
> > So, there are situations in which it’s redundant, but almost always the
> > PartitionMetadata will be empty.
> >
> > 2. They are for subtly different purposes. ShareGroupPartitionMetadata
> > is essentially a persistent cache of the metadata for topic-partitions
> > which
> > can be assigned to group members. ShareGroupStatePartitionMetadata
> > is keeping track of which partitions have share-group state in the share
> > coordinator. I prefer having them separate, in particular because it
> means
> > the ShareGroupPartitionMetadata matches nicely with consumer groups,
> > and also because share groups are able to work without a share
> coordinator
> > (the persister is pluggable).
> >
> > I propose that as we develop the code in the group coordinator which uses
> > the various ShareGroupState RPCs to talk to the share coordinator,
> > we will confirm whether the record schemas are optimal
> > and make a further refinement if required. Let me know if that’s OK.
> >
> > Thanks,
> > Andrew
> >
> >
> > > On 14 Aug 2024, at 00:00, Jun Rao <j...@confluent.io.INVALID> wrote:
> > >
> > > Hi, Andrew,
> > >
> > > Thanks for the update. A couple of followup questions.
> > >
> > > 1. ShareGroupPartitionMetadataValue: Is NumPartitions redundant given
> > > PartitionMetadata?
> > >
> > > 2. I assume that ShareGroupPartitionMetadataValue contains initialized
> > > partitions. Does that
> > > make ShareGroupStatePartitionMetadataValue.InitializedTopics redundant?
> > >
> > > Jun
> > >
> > > On Tue, Aug 13, 2024 at 11:56 AM Andrew Schofield <
> > andrew_schofi...@live.com>
> > > wrote:
> > >
> > >> Hi,
> > >> During the implementation of the group management code for KIP-932,
> > >> we learnt that the decision not to persist assignments for share
> groups
> > was
> > >> making it difficult to fit with the coordinator framework, in
> particular
> > >> the
> > >> use of timeline structures. As a result, I decided to change the KIP
> to
> > >> follow the consumer group record scheme much more closely.
> > >>
> > >> Now, share groups do persist assignments and member epochs which
> > >> resolves the problems we were experiencing managing soft state in the
> > >> coordinator and making group membership reliable across coordinator
> > >> restarts.
> > >>
> > >> I have updated the KIP accordingly and the revised code has been
> merged.
> > >> If anyone has any comments, please let me know.
> > >>
> > >> Thanks,
> > >> Andrew
> > >>
> > >>
> > >>> On 21 May 2024, at 15:35, Andrew Schofield <
> andrew_schofi...@live.com>
> > >> wrote:
> > >>>
> > >>> Hi Jun,
> > >>> All the client metrics are standard. None are required.
> > >>>
> > >>> I’ve updated the KIP accordingly.
> > >>>
> > >>> Thanks,
> > >>> Andrew
> > >>>
> > >>>> On 15 May 2024, at 21:36, Jun Rao <j...@confluent.io.INVALID> wrote:
> > >>>>
> > >>>> Hi, Andrew,
> > >>>>
> > >>>> Thanks for the update. Should we mark whether those metrics are
> > >>>> standard/required for KIP-714?
> > >>>>
> > >>>> Jun
> > >>>>
> > >>>> On Tue, May 14, 2024 at 7:31 AM Andrew Schofield <
> > >> andrew_schofi...@live.com>
> > >>>> wrote:
> > >>>>
> > >>>>> Hi,
> > >>>>> I have made a small update to the KIP as a result of testing the
> new
> > >>>>> share consumer with client telemetry (KIP-714).
> > >>>>>
> > >>>>> I’ve added telemetry metric names to the table of client metrics
> and
> > >>>>> also updated the metric group names so that the resulting client
> > >> metrics
> > >>>>> sent to the broker have consistent names.
> > >>>>>
> > >>>>> Thanks,
> > >>>>> Andrew
> > >>>>>
> > >>>>>> On 8 May 2024, at 12:51, Manikumar <manikumar.re...@gmail.com>
> > wrote:
> > >>>>>>
> > >>>>>> Hi Andrew,
> > >>>>>>
> > >>>>>> Thanks for the KIP.  Great write-up!
> > >>>>>>
> > >>>>>> +1 (binding)
> > >>>>>>
> > >>>>>> Thanks,
> > >>>>>>
> > >>>>>> On Wed, May 8, 2024 at 12:17 PM Satish Duggana <
> > >> satish.dugg...@gmail.com>
> > >>>>> wrote:
> > >>>>>>>
> > >>>>>>> Hi Andrew,
> > >>>>>>> Thanks for the nice KIP, it will allow other messaging use cases
> to
> > >> be
> > >>>>>>> onboarded to Kafka.
> > >>>>>>>
> > >>>>>>> +1 from me.
> > >>>>>>>
> > >>>>>>> Satish.
> > >>>>>>>
> > >>>>>>> On Tue, 7 May 2024 at 03:41, Jun Rao <j...@confluent.io.invalid>
> > >> wrote:
> > >>>>>>>>
> > >>>>>>>> Hi, Andrew,
> > >>>>>>>>
> > >>>>>>>> Thanks for the KIP. +1
> > >>>>>>>>
> > >>>>>>>> Jun
> > >>>>>>>>
> > >>>>>>>> On Mon, Mar 18, 2024 at 11:00 AM Edoardo Comar <
> > >> edoardli...@gmail.com>
> > >>>>>>>> wrote:
> > >>>>>>>>
> > >>>>>>>>> Thanks Andrew,
> > >>>>>>>>>
> > >>>>>>>>> +1 (binding)
> > >>>>>>>>>
> > >>>>>>>>> Edo
> > >>>>>>>>>
> > >>>>>>>>> On Mon, 18 Mar 2024 at 16:32, Kenneth Eversole
> > >>>>>>>>> <kevers...@cloudflare.com.invalid> wrote:
> > >>>>>>>>>>
> > >>>>>>>>>> Hi Andrew
> > >>>>>>>>>>
> > >>>>>>>>>> + 1 (Non-Binding)
> > >>>>>>>>>>
> > >>>>>>>>>> This will be great addition to Kafka
> > >>>>>>>>>>
> > >>>>>>>>>> On Mon, Mar 18, 2024 at 8:27 AM Apoorv Mittal <
> > >>>>> apoorvmitta...@gmail.com>
> > >>>>>>>>>> wrote:
> > >>>>>>>>>>
> > >>>>>>>>>>> Hi Andrew,
> > >>>>>>>>>>> Thanks for writing the KIP. This is indeed going to be a
> > valuable
> > >>>>>>>>> addition
> > >>>>>>>>>>> to the Kafka, excited to see the KIP.
> > >>>>>>>>>>>
> > >>>>>>>>>>> + 1 (Non-Binding)
> > >>>>>>>>>>>
> > >>>>>>>>>>> Regards,
> > >>>>>>>>>>> Apoorv Mittal
> > >>>>>>>>>>> +44 7721681581
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>> On Sun, Mar 17, 2024 at 11:16 PM Andrew Schofield <
> > >>>>>>>>>>> andrew_schofield_j...@outlook.com> wrote:
> > >>>>>>>>>>>
> > >>>>>>>>>>>> Hi,
> > >>>>>>>>>>>> I’ve been working to complete KIP-932 over the past few
> months
> > >> and
> > >>>>>>>>>>>> discussions have quietened down.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> I’d like to open the voting for KIP-932:
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>
> > >>>>>
> > >>
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-932%3A+Queues+for+Kafka
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Thanks,
> > >>>>>>>>>>>> Andrew
> >
> >
> >
>

Reply via email to