>[!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.