Building gRPC Microservices in Go

Course Instructor:
Elliot Forbes

Hey Gophers! My name is Elliot and I'm the creator of TutorialEdge and I've been working with Go systems for roughly 5 years now.

Twitter: @Elliot_f

Building gRPC Microservices in Go



👋 Welcome Gophers!

This course is specifically designed to help teach you how you can build your own production-ready gRPC microservices in Go.

Since starting my journey into Go, I’ve worked on a large number of different services across a range of different business domains. In this course, I’m going to attempt to capture everything I’ve learned over the years building gRPC services and present it in a way that will empower you to build more maintainable and easily tested microservices.

High Level Overview

We’ll start from scratch, and build up our application over time, introducing concepts such as mocking and unit testing the business logic of our service. We’ll then look at how we can add a database to our service and run migrations automatically when our application starts up.

Once we’ve gotten the core components of our application up and running, we’ll then look at Protocol buffers and how we can build out a monorepo that will contain all of our protobuf definitions.

And finally, we’ll then look at wrapping our service with a gRPC server and appropriate gRPC handler functions that other services can then interact with.

My ultimate goal for this course is to provide you with everything you need in order to go off and build your own microservices in Go that follow best practices.


For this course, you will need to know the fundamentals of Go. This course isn’t going to touch too heavily on syntax, instead the focus will be on how you structure your Go code.

What You’ll Learn

Throughout this course, we will be covering the following topics:

  • Setting Up Your Project
  • Running Database Migrations
  • gRPC Overview
  • Structuring Your gRPC Services
  • gRPC Clients
  • BloomRPC
  • Writing your first Protocol Buffer definitions
  • Writing Maintainable, well-structured packages
  • Protocol Buffer Mono-repos
  • Error Handling
  • Integration and Acceptance Testing

Course Discussion and Support

If you need additional support with this course or you’d like to give feedback, then feel free to join the Discord server and join the community!