Experience with Protocol Buffers
pkc: Protocol Buffers will work fine and their documentation is very clear. These are my findings based on my experience -* Serializing data is ok but parsing takes quite a bit of time especially for large requests. (I am talking in milli seconds)
* PBs always require a copy from your internal app data to its structures. Couldn't find a way to avoid that.
* They have variable length encoding and it might be a good option if your data comprised of large percent of integers. From our experience don't use it if you are sending within your corp network as packing and parsing takes more time compared to savings in amount of data transfer. They might be a good option if you are sending data across slow networks.Some of the metrics show that Thrift performs better than PBs. Also Thrift provides options of using different protocols. If Performance is prime criteria JSON + zipping should be a good option. Also they won't have an intermediate step of generating marshaling code.