Home

RPC

Remote procedure call (RPC) is a communication paradigm that enables a program to invoke a procedure on a different address space, typically on another machine, as if it were a local call. This abstraction hides the details of the underlying network, data serialization, and marshalling from the caller, presenting a simple function-like interface. RPC is widely used in distributed systems to enable modular services and transparent inter-process communication.

An RPC system typically involves client and server components: client-side stubs marshal the caller's arguments into

RPC design raises considerations about performance, reliability, and security. Network latency and serialization overhead are factors;

a
message,
send
it
over
a
transport
(for
example
TCP),
and
await
a
reply;
the
server
unpacks
the
request,
invokes
the
requested
procedure
on
the
server,
and
returns
results.
Implementations
differ
in
the
interface
description
language
(IDL),
serialization
format,
and
transport.
Classic
examples
include
ONC/RPC
and
DCE/RPC;
modern
frameworks
include
gRPC
(HTTP/2
and
protocol
buffers),
Apache
Thrift,
JSON-RPC
and
XML-RPC
over
HTTP.
asynchronous
or
streaming
RPC
can
mitigate
some
latency.
Security
relies
on
authentication,
encryption
(e.g.,
TLS),
and
proper
access
control.
RPC
interfaces
require
careful
versioning
and
compatibility
management
to
avoid
breaking
clients.
RPC
is
commonly
used
in
microservices,
cloud
services,
and
distributed
systems,
offering
abstraction
and
language-agnostic
interfaces
but
potentially
increasing
coupling
and
rollout
complexity
compared
with
REST
or
event-driven
patterns.