It's a modern, open-source, high-performant Remote Procedure Call* (RPC) framework.
It uses Protobuf, a language agnostic contract for data serialization.
It's fast
* Remote Procedure Call is a protocol that allows a program to execute a procedure of another program located somewhere in the network. (think subtasks or microservices)
Why GRPC
Hyper efficient data transfer. GRPC uses HTTP/2 by default and sends binary representation of data
It's language agnostic, Protobufs can be translated into many languages and are seen as the same within the GRPC ecosystem
It provides a strongly-typed API contract to ensure ease of programming clients
Getting Started w/ GRPC
Define a service definition contract (using a Protocol Buffer (.proto) file)
Generate the server and client side stubs from the .proto file
Implement the server in one of the supported languages*
Implement the client that invokes the service through the stub