RPC je komunikační model a poskytuje koncept volání distribuovaných metod, který je možný využít v jakékoliv DS architektuře.
Je klíčovou abstrakcí, která se snaží, aby volání funkce na vzdáleném stroji vypadalo syntakticky stejně jako volání lokální funkce. Zásadní rozdíl je však v sémantice selhání. Zatímco lokální volání buď proběhne, nebo celá aplikace spadne, RPC může selhat částečně – zpráva se ztratí, server spadne po vykonání instrukce, nebo se ztratí odpověď.
add(a, b). O zbytek se postará middleware. Programátor neřeší sockety.
[!note] Problém RPC je typicky synchronní (blokující). Klient čeká, dokud server neodpoví. Pokud server spadne, klient zamrzne.
Důležité je také mít na pamětí důležitost idempotence v RPC
add(5, 10).add(5, 10) v implementaci serveru.Výsledek: Klient má v proměnné result číslo 15 a nemá tušení, že to proběhlo na jiném kontinentu.

[!note] Architektura Zajímavé je, že z mechanismu volání samotný princip RPC vždy vytváří dočasný vztah klient-server pro dané konkrétní volání, bez ohledu na celkovou architekturu systému.
.proto soubory u gRPC).Různé implementace RPC můžou garantovat různé typy delivery semantics
I když je RPC 1:1 komunikace (unicast), má uspořádání. Většinou se bavíme o totální uspořádání (per connection)