>[!tldr] Remote procedure calls (PRC) >A Remote Procedure Call (RPC) is a protocol that allows a program to execute a procedure (function) on a different address space, typically on another computer over a network, as if it were a local function call. This offers > >- *Transparency*: The programmer calls a function like normal, but behind the scenes, that call is sent to another machine or process. > - *Abstraction*: The network communication, serialization, and deserialization are abstracted away from the programmer. > - *Bidirectional*: RPC can be synchronous (waiting for a response) or asynchronous (fire-and-forget). >- *Client-server model*: The caller is the client, and the callee (who implements the procedure) is the server.