Blog Posts

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 🙏

Continue Reading

gRPC with Go Crash Course – Bidirectional Streams

gRPC with Go - Bidirectional Streams

This article is part of the series gRPC With Go Crash Course

In this part of the course, you will implement the most challenging RPC routine type which gRPC has to offer - bidirectional streams.

These routines are used to achieve bidirectional client-server communication - meaning that communication can flow both ways. A way to achieve this using traditional HTTP technologies is via web sockets. With gRPC, you have support for such communication natively.

Continue Reading

gRPC With Go Crash Course – Unidirectional Streams

gRPC with Go - Unidirectional Streams

This article is part of the series gRPC With Go Crash Course

In this part of the course, you will implement slightly more challenging RPC routines which involve utilising the gRPC streaming capabilities.

These are essentially a way to achieve client-side or server-side pagination. However, in contrast to normal HTTP APIs, in gRPC these streaming utilities are first-class citizens rather than a useful add-on (e.g. via web sockets).

There is also support for bidirectional streams, which we will explore in the follow-up exercise. In this one, we’ll focus on unidirectional (client-side/server-side) streaming RPCs.

Continue Reading

gRPC With Go Crash Course – Service Schemas

gRPC with Go - Service Schemas

This article is part of the series gRPC With Go Crash Course

In this article, you will create a gRPC/Protobuf schema for a small micro service system for an online casino. 

The scope of the article is to: 

  • Create the service schemas
  • Correctly generate the protobuf Go sources
  • Implement the gRPC servers/clients for the appropriate microservices
  • Integrate the microservices with each other
Continue Reading

gRPC With Go Crash Course – Introduction

gRPC with Go - Introduction


This article is part of the series gRPC With Go Crash Course

In the following set of articles, you'll learn how gRPC works by building several simple web applications and hook them together using gRPC.

The articles won't go into details of what gRPC is and what's its purpose. There's a lot of existing material on the subject already. Instead, they focus on helping you get some real practice using gRPC, integrating it into your own applications & understanding the core mechanisms it provides.

First, we'll cover what we're about to build & the environment setup you'll need for the rest of the articles.

Additionally, have in mind that all the parts of the course are written in a way that they are independent from each other. So if you're not interested in the whole course and want to jump straight to Bidirectional Streams (for example), feel free to do so.

Continue Reading

Hands-on gRPC at Gophercon Israel 2021

Gophercon Israel 2021

I'm super excited to announce that I'll be leading a workshop at Gophercon Israel 2021 (https://www.gophercon.org.il/) this year with "Hands-on gRPC with Go".

In this workshop, participants will be building several web services, which are communicating using the gRPC protocol. They'll explore all different communication types the protocol provides, giving them everything they need to know to integrate and start using gRPC in their own web services.

So if you want to learn gRPC and your hands are itching, grab your ticket and I'll see you there!

Thread-Safety in Go – an Overlooked Concern

Thread-Safety in Go - An overlooked concern
Gopher on image was designed by Renee French. (http://reneefrench.blogspot.com/)

When you first start tinkering with concurrency in any language, what's the most sought after goal is extracting the maximum output from the hardware you have available.

That's why we use it and study it in the first place - to achieve optimal parallelism & get some significant speed-up for our apps out of the box.

However, a not so glamorous part of studying the subject is understanding how to write thread-safe code. The techniques and principles which will enable you to keep your application well-behaved, even after scaling it to dozens of threads.

Even though this is an important thing to consider while writing concurrent code, it is often overlooked in most learning resources about concurrency. This problem is even more relevant in the Go community due to two common misunderstandings I will cover in the article.

Continue Reading

Your Programming New Year’s Resolution

Your programming new year's resolution

So it's that time of the year when you make your new year's resolution. As developers, that might revolve around filling some gaps in our understanding of systems we use or perhaps learning a new programming language.

Whatever your goals might be, one thing is certain about new year's resolutions - you can hardly achieve it without laying out some plan. Without a plan or a schedule, it is perfectly normal to stray away from your goals and go back to your normal routine of spending time with some addictive, but needless pastimes such as checking your facebook news feed.

And I'm not sharing anything new. Most people understand this. However, planning and organising one's life is not an easy undertaking. That's why I've prepared this article - to help you establish an effective and sustainable routine to steadily achieve your goals.

Continue Reading

How to create a Github read-only API token

Github read-only API Token

Ah, so you're maintaining some kind of app which relies on github's API and you want to grant it an access token in order to view a repository's issues, code, etc.

But you don't want that token to be an almighty read/write one, do you?

That is a serious security vulnerability if someone succeeds in acquiring your token.

Fear not, I've got you covered. In this article, I'll show you how to create a read-only api token for your apps.

Continue Reading

Site Footer

BulgariaEnglish