gRPC
Problem
Internal services call each other thousands of times per second.
JSON over HTTP is readable and flexible, but you may want:
* strict contracts,
* compact binary messages,
* generated clients,
* efficient RPC.
Solution — gRPC
gRPC normally uses HTTP/2, carried over TCP, with TLS for encryption.
Protocol Buffers (Protobuf) is its default message format.
gRPC stands for “gRPC Remote Procedure Calls”: the “g” refers back to gRPC itself, a recursive name. A remote procedure call asks another service to run an operation and return its result.
Compared with JSON over HTTP, gRPC's default Protocol Buffers format encodes messages as compact binary data, while generated client code reduces the manual work of building service calls.
Define operations and message types in a contract:
GetCustomer(CustomerId)
→ Customer
Code can be generated for clients and servers, and messages are efficiently serialized.
Core idea: gRPC makes remote service calls look like strongly typed operations with efficient transport.