gRPC & protocol buffers (Go Time #256)
On a previous episode of Go Time we discussed binary bloat, and how the Go protocol buffer implementation is a big offender. In this episode we dive into the history of protocol buffers and gRPC, then we discuss how the protocol and the implementation can vary and lead to things like binary bloat.
Embed this episode
Chapters
- 0:00 Opener
- 0:18 Sponsor: Square
- 1:11 It's Go Time! (Merch Alert)
- 2:01 Welcoming Akshay
- 3:20 A quick primer on protocol buffers
- 6:13 Who should be using protobufs?
- 7:57 There's always a tradeoff
- 9:40 Like static typing, but for data
- 11:01 Swagger vs protobufs
- 16:15 Building APIs for public consumers
- 18:57 The benefits of binary formats
- 21:33 Let's talk about the gob package
- 24:25 Custom JSON parsers aren't for everyone
- 26:01 Sponsor: FireHydrant
- 27:37 gRPC has entered the chat
- 31:59 Alternative runtimes to gRPC?
- 33:08 People building their own alternatives
- 36:41 gRPC's (Stubby) origin story
- 41:19 A sneak peek at Akshay's new thing
- 47:14 Is gRPC only good for internal comms?
- 51:14 HTTP Trailer
- 53:25 Jon loves XML
- 56:37 Sponsor: Calhoun Black Friday
- 57:38 Who is gRCP for?
- 58:50 It's time for Unpopular Opinions!
- 59:18 Akshay's unpop
- 1:03:24 How is Jon not a multimillionaire?!
- 1:04:43 Johnny's unpop
- 1:06:46 Johnny's shameless plug
- 1:08:03 Akshay fakes it till he makes it
- 1:08:47 Back to Johnny's unpop
- 1:09:31 Are Jon's courses generic enough?
- 1:13:52 Time to Go!
- 1:14:09 Outro
No transcript yet.
Frequently asked questions
How long is this episode of Changelog Master Feed?
This episode is 1 hour and 15 minutes long.
When was this Changelog Master Feed episode published?
This episode was published on November 17, 2022.
Is there a transcript available for this episode?
Yes, a full transcript is available for this episode. You can read the complete transcript on the episode page.
Can I download this Changelog Master Feed episode?
Yes. Use the download control on the episode player to save the publisher-provided media file.