Vocabulary
First thing’s first: let’s make sure we agree on the definitions for a few key terms that will come up throughout this chapter and even the rest of the book.
Client
When we say client, we are referring to the program that is responsible for establishing connections to a server and sending RPC requests to it. In gRPC, operations are always initiated by the client. Note that a server can also be a client: in microservice architectures, programs are very often both. A server, let’s call it “server A,” will receive an RPC request. In the course of processing the request, the server may need to send an RPC to another server, which we’ll call “server B.” In this case, “server A” is also acting as a client. With service-oriented architectures, it is not uncommon for numerous servers to be involved in the processing of a single operation.
The term “gRPC client” refers more specifically to the gRPC...