It is not necessary. I chose to build a protobuf based serialization and communication since it is widely used in distributed system and more performant than JSON based serialization.
Another reason was ease of use especially because Netty already supports message encoders and decoders for conversion between protobuf and bytebuf.
Is it necessary to only use protobufs with Netty? What other options do we have?