Zach Bullough

Zach Bullough

Recent posts by Zach Bullough

17 min read

Exploring Concurrency

By Zach Bullough on Aug 30, 2021

At OMG, many of our backend microservices are written in the Go Programming Language. Among a few other things, Go is primarily famous for having extremely efficient, first class concurrency support.

Go’s primary form of concurrency is called a goroutine. Goroutines, like coroutines in other languages, allow for asynchronous programming. At a low level, Go’s runtime multiplexes these coroutines onto OS threads, providing parallelism in addition to concurrency. While many other languages have something similar, Go's goroutines are primitives, built into the base language, and the Go runtime manages them extremely efficiently.