How Go Scheduler Works

What makes goroutines fast? A quick peek into the GMP model inside the Go scheduler. Note: The diagrams shown here are conceptual abstractions. The actual Go scheduler is more dynamic: P-M bindings are not fixed, work stealing is decentralized, and execution involves additional runtime mechanisms such as the network poller and garbage collector. The goal here is clarity of the core GMP model, not a cycle accurate runtime trace. ...

February 22, 2026 · Ajinkya D

Bounded vs Unbounded Concurrency in Go

Go makes concurrency feel effortless. Add the go keyword, and you have parallel work happening. It feels powerful. It is powerful. But power without constraints is how systems collapse. The Naive Approach: Unbounded Concurrency While building a small CLI tool to verify large list of domains, my initial implementation spawned one goroutine per domain. Meaning the number of go routines scaled directly with the input size. This is a poor design. A large enough input size can cause the system to melt down and crash. ...

February 21, 2026 · Ajinkya D