É um protocolo de remote procedure call de alta performance e open source desenvolvido pelo Google.
Protocol Buffers
Formato de dados usado para serializar estrutura de dados; os dados trafegados via gRPC são nesse formato
HTTP/2
Versão mais recente do protocolo HTTP, que usa multiplexação(as requisições e respostas são paralelas e assíncronas), server push(estáticos, por exemplo), headers comprimidos e formatados em HPACK
Tipos de chamadas
- API unary: client -> request(1) -> data <- response(1) <- server
- API server streaming: client -> request(1) -> data <- response(N) <- server
- API client streaming: client -> request(N) -> data <- response(1) <- server
- API bi directional streaming: client -> request(N) -> data <- response(N) <- server