Remote Procedure Calls (RPCs)
Explore the architecture of Remote Procedure Calls (RPCs) to understand how they facilitate communication between distributed microservices. Learn about key RPC components such as IDL, marshalling, binding, and network protocols. Understand both advantages and limitations of RPC in product API design to prepare for architecture interviews.
Introduction
API servers require enormous computing power to serve a large number of clients. Companies like Amazon, Slack, Google, Twitter, Netflix, eBay, and others rely heavily on distributed systems to achieve high performance and scalability. In a distributed system, functionalities are divided into different subcomponents, distributing responsibilities to a set of independently working machines, called microservices. Initially, people started building their own protocols and methods to communicate processes over the wire, which led to various customized protocols. In the late 1970s, the
What is an RPC?
A remote procedure call (RPC) architecture is a service or action-oriented style of creating APIs, where resources are distributed among different services running on remote machines. RPC facilitates interprocess communication by enabling clients to run remote procedures (functions) in a simple local