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

Reply via email to