RPC vs gRPC
- RPC: A technique to construct distributed client-server-based applications. It is like you make a local call, but it invokes something at that distributed machine and sends you a response
- gRPC: A modern open source high performance Remote Procedure Call (RPC) framework, g stands for Google.
gRPC vs REST
Let’s see some differences b/w these two protocols.
- Protocol: gRPC uses HTTP/2, and REST uses HTTP/1.1
- Data Format: gRPC uses protocol buffers, and REST uses JSON/XML
- Streaming: gRPC is bi-directional while REST works on request/response model
- Performance: gRPC performance is better than REST
Benefits of gRPC
- It is faster because it uses protocol buffers
- It supports multiple languages making it a tool of choice for polyglot languages (Polyglot: using multiple programming languages to serve different tasks)
- It supports four types of communication (Unary, server streaming, client streaming, and bi-directional streaming.
When to use gRPC in .Net?
- Microservices Architecture: gRPC, with its small, fast, and efficient binary size, is ideal for microservices.
- Real-Time Applications: It’s a perfect fit for real-time and streaming applications due to its support for bidirectional streaming.
- Polyglot Environments: If your application needs to communicate with services written in multiple languages.
syntax = "proto3";
option csharp_namespace = "GrpcService";
package greet;
Service Greeter{
rpc SayHello(HelloRequest) returns (HelloReply);
}
message HelloRequest{
string name = 1;
}
message HelloReply{
string message= 1;
}