> did not focus on it. If we want this, we should probably write a
> separate KIP and have a separate discussion.

I've opened https://issues.apache.org/jira/browse/KAFKA-20191

On 2026/02/16 09:57:17 Lucas Brutschy via dev wrote:
> Hi all,
> 
> @Chia: That's an excellent point. I'll amend the KIP like this:
> 
> "Where, for simplicity, we can assume the assignment epoch of a
> partition that is not assigned to that member to be the broker-side
> member epoch."
> 
> This should make the new validation behave like the old validation in
> this corner case. Overall, we'll get a weaker validation than the
> current validation. Adding new guard-rails to prevent committing to
> unassigned partitions or even unsubscribed topics makes sense to me,
> but this wasn't really the motivation for this KIP and the discussion
> did not focus on it. If we want this, we should probably write a
> separate KIP and have a separate discussion.
> 
> @Sean: Yes, self-assigned commits will not have a member epoch so the
> validation described in the KIP will not affect this logic. I can add
> a clarification to the KIP.
> 
> Cheers,
> Lucas
> 
> On Mon, Feb 16, 2026 at 9:42 AM Sean Quah via dev <[email protected]> 
> wrote:
> >
> > > You cannot commit partitions that are not assigned to you.
> >
> > Don't we have to continue supporting clients that assign() themselves
> > partitions manually? I don't think the broker is aware of manual
> > assignments.
> >
> > Thanks,
> > Sean
> >
> > On Mon, Feb 16, 2026 at 2:17 AM Chia-Ping Tsai <[email protected]> wrote:
> >
> > > > You cannot commit partitions that are not assigned to you.
> > >
> > > Thanks for the clarification. That sounds good to me, but this new
> > > protection implies a change to the existing behavior. Therefore, it would
> > > be good to explicitly mention this in the KIP
> > >
> > > For example, the following sendOffsetsToTransaction can succeed today, but
> > > will fail after this KIP.
> > >
> > >   ```java
> > >  consumer.subscribe(List.of("chia"));
> > >  ...
> > >  producer.sendOffsetsToTransaction(Map.of(
> > >      new TopicPartition("chia", 0), new OffsetAndMetadata(100),
> > >      new TopicPartition("ikea", 0), new OffsetAndMetadata(100)), // not
> > > assigned partitions
> > >      consumer.groupMetadata());
> > >  ```
> > >
> > > Best,
> > > Chia-Ping
> > >
> 

Reply via email to