Roughly, GRPC ~= Schema + Binpacked messages + extra semantics for HTTP2
The "performance" bit is bandied about a lot, but I'm convinced that you can get far enough with `Content-Type` and bin-packed messages when you need them. You can request/receive binary with HTTP 1.1, that's how images and what not get to you -- if what I'm imagining is even relatively easy to implement, HTTP 1.1 would be strictly better than GRPC because of the flexibility (at the cost of sending a few more headers). Once HTTP 2/3 settle and see more adoption, GRPC's performance benefits would be reduced even further.
I'm not convinced I need to buy into all of GRPC to get efficiency from bin-packed messages across the wire, or bidirectional communication.
If I was picking a network setup from scratch I'd be going for RSocket, myself. It has nice backpressure and resumption mechanisms in the app layer protocol.
The "performance" bit is bandied about a lot, but I'm convinced that you can get far enough with `Content-Type` and bin-packed messages when you need them. You can request/receive binary with HTTP 1.1, that's how images and what not get to you -- if what I'm imagining is even relatively easy to implement, HTTP 1.1 would be strictly better than GRPC because of the flexibility (at the cost of sending a few more headers). Once HTTP 2/3 settle and see more adoption, GRPC's performance benefits would be reduced even further.
I'm not convinced I need to buy into all of GRPC to get efficiency from bin-packed messages across the wire, or bidirectional communication.