Bumping :) If there are no objections, I'd like to go with the following:
1. Do not support javaapi (SimpleConsumer) with dependency on versions higher than 0.8.2. Existing clients will keep working. 2. The configuration parameter for upgrades will be inter.broker.protocol.version={0.8.2.0, 0.8.3.0, 0.9.0.0...} Gwen On Mon, Jan 26, 2015 at 8:02 PM, Gwen Shapira <gshap...@cloudera.com> wrote: > Hi Kafka Devs, > > While reviewing the patch for KAFKA-1809, we came across two questions > that we are interested in hearing the community out on. > > 1. This patch changes the Broker class and adds a new class > BrokerEndPoint that behaves like the previous broker. > > While technically kafka.cluster.Broker is not part of the public API, > it is returned by javaapi, used with the SimpleConsumer. > > Getting replicas from PartitionMetadata will now return BrokerEndPoint > instead of Broker. All method calls remain the same, but since we > return a new type, we break the API. > > Note that this breakage does not prevent upgrades - existing > SimpleConsumers will continue working (because we are > wire-compatible). > The only thing that won't work is building SimpleConsumers with > dependency on Kafka versions higher than 0.8.2. Arguably, we don't > want anyone to do it anyway :) > > So: > Do we state that the highest release on which SimpleConsumers can > depend is 0.8.2? Or shall we keep Broker as is and create an > UberBroker which will contain multiple brokers as its endpoints? > > 2. > The KIP suggests "use.new.wire.protocol" configuration to decide which > protocols the brokers will use to talk to each other. The problem is > that after the next upgrade, the wire protocol is no longer new, so > we'll have to reset it to false for the following upgrade, then change > to true again... and upgrading more than a single version will be > impossible. > Bad idea :) > > As an alternative, we can have a property for each version and set one > of them to true. Or (simple, I think) have "wire.protocol.version" > property and accept version numbers (0.8.2, 0.8.3, 0.9) as values. > > Please share your thoughts :) > > Gwen