Some folks in the thread are suggesting using a binary format, and that's certainly a good idea for some.
My business sells software that collects moderately sized (10-100TB/day) , and this data is collected as PROTOBUF. The format is great, and coordinating the backend and client side stuff with protobuf is bliss.
However, we store the data in various relational and document databases. Neither of those use protobuf...
Most importantly, it's business critical to be able to stream this data to data lakes where it can be read by humans. None of the options are going to support protocol buffers, you're either going to have to write a parser (impossible for some) or transform to JSON before ingest (fairly expensive due to some poor choices in how to represent various fields).
It was a sound technical decision to use protoc , and a terrible choice for the business.
I think it would have been much better to use avro, still benefit from schemas but push the work of marshaling JSON back to clients...