Hi Gabriella,

Thanks for the KIP. I have a few high level comments:

DJ_01: The motivation to not use `group.streams.assignors` and follow
the pattern introduced by KIP-848 is pretty weak in my opinion,
especially the "avoids leaking implementation class names into
per-group dynamic configuration" part. The class names wont leak into
the group config as the group config requires the name of the
assignor. From a user perspective, it is exactly the same concept so
using a different way to express it is wrong in my opinion. Should we
just use `group.streams.assignors` to be consistent in our configs?

DJ_02: I would suggest reconsidering the interface of the assignor. We
started with a similar interface in KIP-848 and we realized during the
implementation that using POJOS and returning Maps (e.g. for
members()) was really inflexible. Moreover, I am not sure if using
records is good from an evolutionary point of view. Using interfaces
may be better. It also allows us to wrap internal objects to expose
them to the assignor. Have you looked into the KIP-848's interface and
the various assignors?

DJ_03: Regarding the `assignmentConfigs()`, should we call it
`configs()` as it is already clear that it is for the assignment.
Moreover, I wonder if it is going to return all group configs or only
a subset of them. Could you please clarify in the KIP?

DJ_04: The dynamic group configs validation makes sense to me. Note
that this pattern is not used today. I also wonder whether we should
move the validation of all dynamic group configs there. To be
discussed.

Best,
David

On Thu, Jun 11, 2026 at 8:37 PM Gabriella Fu via dev
<[email protected]> wrote:
>
> Hi all,
>
> I’d like to start the discussion for KIP-1357: Add broker side custom
> assignors for "streams" groups
>
> KIP:
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=430408758
> JIRA: https://issues.apache.org/jira/browse/KAFKA-20683
>
> Summary:
> The Streams Rebalance Protocol (KIP-1071) moves task assignment from the
> client to the broker, but unlike the classic protocol  and KIP-848 consumer
> groups, it offers no way to plug in a custom assignor. This KIP closes that
> gap by making the existing streams task assignor interfaces public API and
> adding broker and group configurations so operators can load custom
> assignor implementations and select them per group by short name, with no
> client-side involvement.
>
> Please let me know your feedback
>
> Thanks,
> Gabriella Fu

Reply via email to