01. Welcome!
02. What are Protocol Buffers and What are the Benefits
03. What is gRPC
04. Types of gRPC APIs
05. Protoc Tool & Generating Code
06. Defining a gRPC Service Contract
07. Implementing a Server
08. Implementing a Client
09. Error Handling
10. Exercise Solution
11. Running a Server Correctly
12. Implementing Server Streaming
13. Implementing Client Streaming
14. Implementing Bi-Directional Streaming
15. Exercise Solution 2
16. What is SSL-TLS
17. Implementing Server-side TLS in gRPC
18. Implementing mTLS in gRPC
19. Exercise Solution 3
20. Interceptors - Introduction, Client Interceptors, Server Interceptors
21. Setting Deadlines-Timeouts
22. CallOptions & Metadata
23. API key Authorization via Interceptors
24. Auth via CallCredentials
25. Exercise Solution 4
26. Client Service Config & Timeouts
27. Automatic Client Retries
28. Introduction to Client-Side Load Balancing
29. Round Robin Load Balancing
30. Creating a Custom Load Balancing Policy
31. Making gRPC Requests via Postman
32. Making gRPC Requests via gRPCurl
33. Creating Unit Tests for RPCs - Part 1 - Unary
34. Creating Unit Tests for RPCs - Part 2 - Streaming
35. Creating Integration-End-to-End Tests for gRPC Services - Part 1 - Unary
36. Creating Integration-End-to-End Tests for gRPC Services - Part 2 - Streaming
37. Exercise Solution 5
38. What is Docker & Containerising Go Services
39. What is Kubernetes & What do I Need to do to Deploy There
40. TLS & Automatic Certificate Renewal Using LetsEncrypt
41. Exposing a gRPC Service Part 1 - via LoadBalancer Service
42. Exposing a gRPC Service Part 2 - via Ingress
43. Exposing a gRPC Service Part 3 - via Cloudflare Tunnel
44. Challenges with Maintaining Protobuf at Scale & What is Buf
45. Example Protobuf Registry Walkthrough
46. ConnectRPC - Server & Client implementation in Go
47. ConnectRPC - Client implementation for Web
48. Buf Schema Registry, Dependencies & Protovalidate
49. Exercise Solution 6