gRPC With Go Crash Course

gRPC With Go Crash Course

In this crash course, we’ll cover everything you need to know about gRPC and integrating it with your Go applications.

Each of the sub-articles below are written in a way that they are independent from one another, so if you’re interested in only going through a specific part of the course, feel free to do so.

The only article which is mandatory is the Introduction, which covers what kind of application you’ll be building as well as what kind of software you need to install/configure to avoid any technical issues throughout the course.

If you encounter any issues or bugs in the article/code, feel free to open an issue in the Github repo for this course.

If you enjoy the course & want to support me I’d be more than grateful if you ⭐ the repo, share the series, say thanks on Twitter or sponsor my work 🙏

gRPC with Go - Introduction


In this part, we’ll go through what application we’re building throughout the course & how to install all the necessary tools you’ll need in order to follow along without experiencing any technical issues.

gRPC with Go - Service Schemas

Service Schemas

This part covers how to write protocol buffer definitions & generate the source code from them, which we later use to integrate with our gRPC servers/clients.

gRPC with Go - Basic RPC Routines

Basic RPC Routines

This part covers the most basic type of communication one can use with gRPC – the simple request-response model which is prevalent in regular HTTP APIs.

gRPC with Go - Unidirectional Streams

Unidirectional Streams

In this article, we’ll cover a more advanced type of communication which gRPC supports – unidirectional streams. These are used to natively create a paginated stream of data either from client to server or from server to client.

gRPC with Go - Bidirectional Streams

Bidirectional Streams

The final part of the series covers the most complex feature, supported in gRPC – bidirectional streams. With this type of communication, you can maintain a connection in which both the server and the client can transmit data continuously.

Site Footer