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
