> we decided to test BSON and MessagePack due to their closeness to JSON<p>Then I'm surprised you overlooked Thrift so quickly given that it has several binary <i>and</i> a JSON encoding. There's also an official Go implementation in tree, and you get the comfort of a protobuf-like schema format (which with code-gen means you don't have to rewrite a bunch of code if you want to use it across languages).<p>Other nice options: Apache Avro (no code gen, json schemas, <i>very</i> dense encoding) and Cap'n Proto