Phase 27 of 30 · Topic 27.1

gRPC vs REST JSON: Protocol Buffers & Binary Wire Efficiency

1Concept

gRPC uses Protocol Buffers (`.proto`) to serialize structured data into compact binary payloads transmitted over HTTP/2 multiplexed streams, achieving 5-10x higher throughput than REST JSON.

2Architecture Diagram

JSON REST Payload:    { "userId": 101, "name": "Alexander" }  (45 Bytes text)
gRPC Protobuf Payload: [ 0x08, 0x65, 0x12, 0x09, ... ]         (14 Bytes binary)
                       └── 70% smaller bandwidth footprint!

3Code Example

C# 13 & .NET 9
using System;

public class GrpcConceptDemo
{
    public static void Main()
    {
        Console.WriteLine("Proto definition:");
        Console.WriteLine("service UserAccountService {");
        Console.WriteLine("    rpc GetUserProfile (UserRequest) returns (UserResponse);");
        Console.WriteLine("}");
    }
}

4Expected Output

Proto definition:
service UserAccountService {
    rpc GetUserProfile (UserRequest) returns (UserResponse);
}

5Key Takeaways

  • gRPC is the industry standard for internal east-west microservice communication.
  • Strongly-typed contracts generated automatically in C# from `.proto` files.
  • HTTP/2 multiplexing allows multiple concurrent RPCs over a single TCP connection.