RPC calls allow one service to call functions in another service as if it is a part of the same service. And unlike a REST API, one gets strong type checking. The two services can even be in different languages.  gRPC is a great framework for implementing an RPC service.

Another language-agnostic framework for making RPC calls is GraphQL. Many people don’t think of GraphQL that way, however, it can serve the same purpose.

Both GraphQL and gRPC are modeled as server and client-side frameworks. So, which one should you use?

GraphQL is a superior option when one is planning to build an API service that’s exposed to the Internet. Even more so, because multiple queries can be combined into one.

gRPC, however, is better for the use case where the gRPC server is a private service not exposed to the public network.