Manage episode 347336032 series 3341962
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.
Changelog++ members save 4 minutes on this episode because they made the ads disappear. Join today!
- Square – Develop on the platform that sellers trust. There is a massive opportunity for developers to support Square sellers by building apps for today’s business needs. Learn more at changelog.com/square to dive into the docs, APIs, SDKs and to create your Square Developer account — tell them Changelog sent you.
- FireHydrant – The reliability platform for every developer. Incidents impact everyone, not just SREs. FireHydrant gives teams the tools to maintain service catalogs, respond to incidents, communicate through status pages, and learn with retrospectives. Small teams up to 10 people can get started for free with all FireHydrant features included. No credit card required to sign up. Learn more at firehydrant.com/
- Calhoun Black Friday – Go Time co-host Jon Calhoun is having a Black Friday sale on November 21st-29th. All paid courses will be 50% OFF. Learn more about Jon’s courses at calhoun.io/courses
- Akshay Shah – Twitter, GitHub, LinkedIn, Website
- Jon Calhoun – Twitter, GitHub, Website
- Johnny Boursiquot – Twitter, GitHub, Website
- Where Akshay works
- Buf’s gRPC implementation
- Google’s Protocol Buffers overview
- gRPC docs
- Google’s grpc-go
- gRPC benchmarks
- gRPC spec
- hand-write a gRPC handler in 7m
Something missing or broken? PRs welcome!
(00:00) - Opener
(00:18) - Sponsor: Square
(01:11) - It's Go Time! (Merch Alert)
(02:01) - Welcoming Akshay
(03:20) - A quick primer on protocol buffers
(06:13) - Who should be using protobufs?
(07:57) - There's always a tradeoff
(09: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