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.

Remote procedural call
https://book.systemsapproach.org/e2e/rpc.html

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