
A solid collection of battle-tested Go concurrency patterns that covers the essentials: worker pools, fan-out/fan-in pipelines, semaphore-based rate limiting, and graceful shutdown handling. The code examples are production-ready and demonstrate proper context usage, channel management, and synchronization primitives. What I appreciate is the focus on real patterns you'll actually encounter, like bounded concurrency and proper goroutine lifecycle management. The graceful shutdown pattern alone is worth having on hand since most tutorials skip this crucial piece. Perfect reference when you need to implement concurrent processing or debug those inevitable race conditions that pop up in Go services.
$ npx -y skills add wshobson/agents --skill go-concurrency-patterns --agent claude-codeInstalls into .claude/skills of the current project.
Production patterns for Go concurrency including goroutines, channels, synchronization primitives, and context management.
| Primitive | Purpose |
|---|---|
goroutine | Lightweight concurrent execution |
channel | Communication between goroutines |
select | Multiplex channel operations |
sync.Mutex | Mutual exclusion |
sync.WaitGroup | Wait for goroutines to complete |
context.Context | Cancellation and deadlines |
Don't communicate by sharing memory;
share memory by communicating.
package main
import (
"context"
"fmt"
"sync"
"time"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
results := make(chan string, 10)
var wg sync.WaitGroup
// Spawn workers
for i := 0; i < 3; i++ {
wg.Add(1)
go worker(ctx, i, results, &wg)
}
// Close results when done
go func() {
wg.Wait()
close(results)
}()
// Collect results
for result := range results {
fmt.Println(result)
}
}
func worker(ctx context.Context, id int, results chan<- string, wg *sync.WaitGroup) {
defer wg.Done()
select {
case <-ctx.Done():
return
case results <- fmt.Sprintf("Worker %d done", id):
}
}
Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.
Sponsors