🧠 When a Goroutine Won’t Die: Debugging a Real Goroutine Leak with pprof Goroutines are one of Go’s most powerful features. They’re lightweight, cheap, and easy to spin up. But that power comes with responsibility: if you forget to stop them, goroutines can quietly accumulate until your service starts to choke. This is the story of how I discovered a real goroutine leak in production after a library update — and how I tracked it down using pprof, debugged the root cause, and submitted a pull request to fix it.
Worker Pool Pattern Hey everyone! How’s it going? This is my first post here on the blog in a series that I’m excited to share with you about concurrency models using Golang. For today, I’ve chosen to introduce a model known as the Worker Pool. But what exactly is a worker pool? Basically, it’s a concept where each goroutine – also called workers – waits to receive tasks to execute. This model brings several advantages and disadvantages, but before we dive into that, let’s try to visualize how this works.