.NET gRPC - deep dive - Irina Scurtu - NDC London 2024

.NET gRPC deep dive: Explore the powerful and efficient RPC framework, its use cases, and its benefits in various scenarios, languages, and systems. Discover how to define protocol files, generate C# classes, and implement business logic.

Key takeaways
  • gRPC is a great alternative to REST
  • Use cases for gRPC are client streaming, server streaming, and bidirectional streaming
  • need for binary payload serialization
  • Define the protocol files and generate C# classes from it
  • Code generation is done by the protocol compiler
  • overriding specific parts in the generated code
  • Server streaming: pre-defined output sequence implemented on the server-side
  • GRPC transcoding: for converting HTTP/2 to gRPC
  • comparing gRPC with REST
  • HTTP/2 limitations: no headers, no chunking feed, problem with large payloads
  • mono_PKT mode: for creating a single connection for multiple requests and responses
  • gRPC reflection: for introspection and discovery of services
  • Showcasing a gRPC service using C# and.NET
  • Steps to create a gRPC service: define protocol files, generate C# classes, implement business logic, test, deploy
  • Using gRPC in real-world scenarios: Kubernetes, distributed systems, fault tolerance, load balancing
  • GRC is powerful because of its uses in multiple scenarios and languages
  • Different streaming types in gRPC: unary, client streaming, server streaming, bidirectional streaming
  • GRPC services equaling client, with fault tolerance example