Ask HN: Protobuf as a Database Wire Protocol?
Why is Protobuf a bad choice for a distributed database wire protocol?
I understand it's a popular choice for service development through the use gRPC, Twirp, etc. I assume there are good performance reasons why Protobuf is not used in database node-to-node communication, but I'm curious to know what they are.
As an aside, if I don't want to commit to one protocol like Postgres or MySQL or Memcached, is there an extensible wire protocol out there that can accommodate these different protocols under one umbrella? I'm considering generically pre-pending each frame with a set of bits to identify which protocol the frame uses. This seems like something that's probably already been solved, and I'm just not aware of it. Does anyone have any ideas?
3 comments
[ 3.2 ms ] story [ 16.6 ms ] threadAssuming I'm sending data over plain TCP, would Protobuf be comparable in performance to another DB wire protocol? Or am I better off selecting a proven protocol like Postgres and using that?
https://arrow.apache.org/