gRPC in Go Bootcamp

This workshop is for Go developers who want to get started with gRPC. We assume you have working knowledge of Go.

gRPC is a remote procedure call (RPC) framework from Google which uses Protocol Buffers as a serialization format and HTTP2 as the transport medium. By using these two well established technologies, you gain access to a lot of knowledge and tooling that’s already available.

In this workshop, we will learn how we can use these technologies to efficiently connect internal services and pass information between them.

Read Miki’s blog post on gRPC here: [https://www.ardanlabs.com/blog/2020/06/python-go-grpc.html] (https://www.ardanlabs.com/blog/2020/06/python-go-grpc.html)

Session Dates ( 12 PM - 2PM EST)

  • June 14
  • June 21
  • June 28
  • July 5

Course Outline and Agenda

Session 1: Protocol Buffers

  • gRPC overview
  • The Protocol buffers definition file
  • Serializing data

Session 2: Clients & Servers

  • Writing a server
  • Writing a client
  • Error handling

Session 3: Beyond Request/Response

  • Timeouts & cancellations
  • Streaming data
  • Writing interceptors (middleware)

Session 4: Development & Deployment

  • Sharing your protobuf definitions
  • Testing your code
  • Security
  • Using grpc-gateway to generate REST API

About Miki Tebeka

Miki is a software developer with more than 20 years of experience. He has taught many workshops on various technical subjects all over the world at companies such as AT&T, Oracle, Dropbox, J.P. Morgan, and others. Miki is involved in open source, both in the Go and Python worlds. He has several open source projects of his own and contributed to many others including Go & Python. He’s also helping organize GopherCon Israel, Go Israel meetup, the upcoming PyData Israel, and was a member of the PyCon Israel team. Miki wrote “Forging Python”, “Go Brain Teasers” and “Python Brain Teasers”, he’s a LinkedIn Learning author, speaks at conferences, and infrequent blogger. Miki helps customers in R&D projects, building data pipelines, optimizing performance, and other challenging technical issues. He loves writing code and solving problems.