rpc
Explains remote procedural call
Jul 15, 2025
RPC, a communication style invented in the 1960s, is based on the simple concept of abstracting the callee from the caller. This abstraction means the caller doesn’t know if the callee is present on the same machine.
It uses the client-server model, where the requesting program is the client and the service-providing program is the server.
However, remote communication over a network introduces failure modes and behaviors that are fundamentally incompatible with what we expect from a local procedure call. For example, we don’t normally expect the act of calling a procedure to fail. The procedure itself can certainly fail (e.g., by throwing an exception or entering an infinite loop), but the call instruction is expected to succeed.
Of course, this isn’t guaranteed over a network. The call could be sent and then get lost, or the server might be unavailable and never respond. These needs to be handle in the client side.

Later, related technologies were developed, such as RMI (Remote Method Invocation) and, more recently, gRPC (Google Remote Procedure Call).