Hi, I've had a look into the avro code last week and believe that there is a way for a smooth transition from jute to avro. (ZOOKEEPER-102)
Avro has so called "encodings" which are in charge of translating java types to byte arrays. Avro includes a binary and a json encoding. It should be trivial (IMHO) to write an additional "jute" encoding that would be wire compatible to current jute. Question is, whether this encoding should be developed inside ZooKeeper or as an avro contribution. I'd propose to start with the avro migration after Netty has replaced NIO as the transport layer. Thus there would be less complexity in the affected code. After there has been one ZK version with avro, one could start to also support the original avro binary encoding. Since there are ZK clusters which can not be taken down, there must be a migration path for a running ZK cluster. This could be achieved by an encoding which wraps the avro binary encoding as well as the jute encoding. This wrapper could notice on a connect request which encoding is used by the client and choose the appropriate encoding for this session. Best regards, Thomas Koch, http://www.koch.ro
