What's New in gRPC - A Summary of Key Developments and Future Directions
0:00 Introduction and Acknowledgements: Kevin Nilson introduces the talk and acknowledges the significant growth of gRPC, with millions of weekly downloads across various languages like Java, Python, and Node.js.
1:11 Community and Development: Emphasizes the importance of community contributions and the desire to collaborate with users on future development.
1:35 Documentation and Learning Resources: Addresses past feedback regarding documentation challenges, highlighting recent improvements with new guides, video content, and examples to enhance user experience.
3:16 Rust Integration: Announces ongoing efforts to integrate Rust support into gRPC, in collaboration with the Tonic team, and invites interested users to provide early feedback.
4:29 Important Topics Mailing List: Introduces a new mailing list dedicated to critical announcements, such as outages or urgent updates, ensuring users receive essential information.
5:48 gRPC Graduation: Expresses the intent to pursue gRPC graduation within CNCF, seeking community support to achieve this milestone.
6:39 Core Concepts of gRPC: Pesh Dhit explains gRPC's fundamentals, including its speed, ease of use, and efficiency, and its role as a "superflight service" for data transfer.
7:22 Use Cases: Highlights gRPC's versatility across various devices and platforms, making it suitable for microservices and distributed applications.
8:26 Design Decisions: Discusses key design choices, including the use of Protocol Buffers (protobuf) for efficient data serialization and http2 for enhanced performance.
9:47 gRPC Components: Introduces core components like the Channel (an abstraction over endpoints) and Subchannels (actual connections to backends).
10:39 Life of an RPC: Srishti details the lifecycle of a Remote Procedure Call (RPC), from creating a stub to name resolution, load balancing, and data transmission.
11:46 Name Resolution: Explains that name resolution in gRPC can be customized, allowing for service discovery beyond traditional DNS.
12:19 Load Balancing: Describes load balancing's role in managing connections, distributing requests, and ensuring scalability.
13:57 Data Transmission: Outlines how gRPC uses protobuf for serialization and http2 for framing data during transmission.
14:38 Types of Calls: Classifies gRPC calls into four types based on request/response patterns: unary, bidirectional streaming, client-side streaming, and server-side streaming.
15:06 Bonus Tips: Richard Belleville covers interceptors (middleware for modifying gRPC calls), deadlines/timeouts (for limiting wait times), and active cancellation.
17:38 Retries: Explains how retries can be configured to handle temporary issues, with transparency to the user and observability through OpenTelemetry.
18:40 Channel Management: Advises keeping channels around for reuse and proper shutdown procedures.
20:15 gRPC Route in Kubernetes: Announces the GA release of gRPC Route in the Kubernetes Gateway API, simplifying traffic management for gRPC services.
21:06 OpenTelemetry Integration: Highlights expanded OpenTelemetry support for metrics (latency, error rate, etc.) and ongoing work on tracing.
21:41 Dual Stack Backend Support: Introduces support for backends with both IPv4 and IPv6 addresses, using the Happy Eyeballs algorithm for efficient address selection.
22:17 Protobuf Editions: Explains Protobuf Editions as a versioning system for protobuf features, ensuring forward compatibility and easier updates.
23:16 Future of gRPC: Outlines future investment areas, including Rust language support, AI-assisted development, protobuf management, and enhanced developer resources.
24:45 Community Engagement: Encourages community participation through meetups, contributions, and feedback.
25:08 gRPC Conf India 2025: Announces the upcoming gRPC Conf in India in 2025, inviting attendees to stay tuned for details.
25:21 Q&A: Addresses various questions from the audience regarding performance testing, authentication, package management, OpenTelemetry integration, load balancing, and more.
31:48 Open Telemetry: It was clarified that OpenTelemetry provides valuable insights with minimal code overhead, as the framework handles data collection across all endpoints and services.
32:06 Open Telemetry Tracing Talk: There will be a talk about OpenTelemetry at 2:45 PM the next day.