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 🙏

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.

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.

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.

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.

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.
For more programming/golang content I publish, follow me on Twitter.