> You'd use it where you'd use REST/API/JSONRPC/
Not really. You'd use it for inter service communication but can't really use it in the browser (see grpc-web)
Not really. You'd use it for inter service communication but can't really use it in the browser (see grpc-web)
What I can say is that in terms of flexibility, protobufs by nature provide us with forward and backward compatibility. We can easily add new fields and eventually deprecate old ones, evolving the API similarly to GraphQL.
Apparently, gRPC also has some introspection capabilities like GraphQL (since again you have a clear protobuf schema) but I have never used them in my clients, and perhaps they are not as baked into the system as in GraphQL.
So not the same as GraphQL, as you are not asking about resources/objects, but rather inspecting what can be called and how.