Hi,
gRPC docs tell me that it is serialization format agnostic but it appears that protobufs are the IDL of choice and I wanted to better understand why and also help build an argument for protobufs and gRPC as well. (I didn't notice any threads regarding avro on this list (maybe this is the wrong place?).
I've compiled some features of AVRO and Protobufs that stand out, though if there are others I am missing or topics I am conflating please do correct me, pedantically if you want.
* AVRO has the following 'advantages' (?):
** A dynamic schema through negotiation and in general the schema is more 'robust.' There is no need to declare IDs static data types or do code generation and helps with more generic processing of arbitrary data over the wire (maybe as part of a pub/sub flow).
** Hadoop support OOB, though this may be here nor there, the pervasiveness of Hadoop might make protobufs themselves a non-starter.
** Language inheritance/nesting and polymorphism
*** How much impact might this have on performance at the end of the day, does it nullify the advantages of AVRO being a binary format? Is there any prior art here comparing the two. (Sorry for such a loaded item AVRO folks).
* Protobufs OTOH have these 'advantages' seemingly over AVRO
** Human readable IDL (well more human readable)
** Cleaner looking documentation¹
** Cleaner looking implementation¹
** Diverse language options¹
** with gRPC you do not have to write your own webserver since it is generated for you.
¹ probably because its an Apache project and not a Google project?
Thank you for everyone's time,
Dennis