Boyang Chen created KAFKA-7995:
----------------------------------

             Summary: Augment singleton protocol type to list for Kafka 
Consumer  
                 Key: KAFKA-7995
                 URL: https://issues.apache.org/jira/browse/KAFKA-7995
             Project: Kafka
          Issue Type: Improvement
          Components: consumer, core
            Reporter: Boyang Chen


Right now Kafka consumer protocol uses a singleton marker to distinguish Kafka 
Connect worker and normal consumer. This is not upgrade-friendly approach since 
the protocol type could potential change over time. A better approach is to 
support multiple candidacies so that the no downtime protocol type switch could 
achieve.

For example, if we are trying to upgrade a Kafka Streams application towards a 
protocol type called "stream", right now there is no way to do this without 
downtime since broker will reject changing protocol type to a different one 
unless the group is back to empty. If we allow new member to provide a list of 
protocol type instead ("consumer", "stream"), there would be no compatibility 
issue.

Alternative approach is to invent an admin API to change group's protocol type 
on runtime. However, the burden introduced on administrator is not trivial, 
since we need to guarantee the operation series to be correct, otherwise we 
will see limp-upgrade experience in the midpoint, for example while we are 
changing protocol type there was unexpected rebalance that causes old members 
join failure.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to