gRPC in Go
1h 9mIntermediate2023-07-03
Authors

Miki Tebeka
CEO at 353Solutions
Course details
A growing number of companies use gRPC, a popular framework that writes services and clients. In this course, Miki Tebeka presents an overview of gRPC, then shows you the protocol buffers serialization format, as well as how to write a gPRC definition file (.proto), write gRPC servers and clients, and use advanced gRPC features like streaming, reflection, and more. Learn about RPC in general, then go into protocol buffers, how gRPC use them, why gRPC chose HTTP/2, and how the gRPC ecosystem works. Explore writing and compiling a .proto file, using generated code, and generating JSON encoding. Dive into gRPC servers and clients, and discover how to define a streaming endpoint, send streaming data to the client, and handle streaming responses from the server. Plus, go over advanced topics like writing interceptors, sharing .proto definitions, testing your code, and using the gRPC gateway.
Skills covered
gRPCGoSoftware ArchitectureGoogleProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Why gRPC
- 02 - What you should know
- 03 - Setting up
1. gRPC Overview
- 04 - RPC in general
- 05 - Protocol buffers
- 06 - HTTP 2
- 07 - The gRPC ecosystem
2. Protocol Buffers
- 08 - Writing .proto file
- 09 - Compiling .proto to Go
- 10 - Using generated code
- 11 - JSON encoding
- 12 - Challenge - Invoice
- 13 - Solution - Invoice
3. gRPC Server
- 14 - Defining the service
- 15 - Generating Go code
- 16 - Running the server
- 17 - Adding reflection
- 18 - Using grpcurl to call your server
- 19 - Challenge - End
- 20 - Solution - End
4. gRPC Client
- 21 - Creating a client
- 22 - Calling the server
- 23 - Sending metadata
- 24 - Challenge
- 25 - Solution
5. Streaming
- 26 - Streaming overview
- 27 - Defining a streaming endpoint
- 28 - Streaming server handler
- 29 - Streaming client
6. Advanced Topics
- 30 - Writing interceptors
- 31 - Sharing .proto definitions
- 32 - Testing your code
- 33 - Using gRPC gateway
Conclusion
- 34 - Next steps