dajac opened a new pull request, #14673: URL: https://github.com/apache/kafka/pull/14673
The current implementation of the reconciliation state machine on the server side is asymmetric when it comes to how it treats the revocation or the assignment of partitions. When partitions are revoked, the state machine cannot advanced until the consumer acknowledges the revocation. However, when partitions are assigned, the state machine does not wait on receiving an acknowledgement at all. This means that the next assignment can be delivered anytime. While working on the client side state machine, this asymmetric handling caused a lot of confusion and made the client side a lot more complex than we imagined. The complexity came from the need to buffer all the new assignments received while one assignment is being reconciled. Our goal is to simplify the consumer with the new protocol so this was going in the opposite direction. This patch changes the server side state machine to always wait on a new assignment to be acknowledge before delivering a new assignment regardless from whether partitions are revoked, assigned or both. ### Committer Checklist (excluded from commit message) - [ ] Verify design and implementation - [ ] Verify test coverage and CI build status - [ ] Verify documentation (including upgrade notes) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org