Taming the Goroutine Beast
summary
Open-source goroutine manager that replaces go with NewAsyncRoutine and attaches a name, context and custom data to each goroutine; a background monitor snapshots routines every 0.5s and notifies pluggable observers so you get timebox + observers alerts and per-name counts. Demo shows routine totals climbing (21→33→43→58) until the manager flags repeating doJob goroutines, records the URL that failed, reveals an ignored error that leaves a send blocked, and after the fix routine count stabilizes near one.
AI-written summary · about
chapters (15)
- 0:00Red Hat and OpenShift intro
- 1:09Goroutine leak in production
- 2:35Debugging goroutine challenges
- 5:49Goroutine leaks code demo
- 7:35Debugging tool limitations
- 8:18New Goroutine framework goals
- 9:21Sync Routine Manager intro
- 10:24Framework architecture
- 13:51Live demo setup
- 16:13Integrating Sync Routine Manager
- 18:22Real-time routine monitoring
- 20:35Leaking routines by name
- 22:03Long-running routines detection
- 24:40Root cause analysis
- 26:12Production release and open source
related talks
35mGoroutines: the dark side of the runtime
22mTales of Go Runtime Scheduler
29mGo Surgery: a Goroutine and Its Innards
40mDebugging concurrency programs in Go
14mGo's work stealing scheduler
35mGo’s Trace Tooling and Concurrency
47mQueues, Fairness, and The Go Scheduler
16mIn the land of Gophers from age 3
