// the find
sourcegraph/conc
Better structured concurrency for go
conc is a structured concurrency library for Go that wraps goroutine management with scoped ownership, panic propagation, and a composable pool/stream/iter API. It solves the three most annoying goroutine papercuts: leaks, silent panics, and boilerplate. Aimed at any Go developer writing concurrent code beyond toy examples.
Panic propagation with preserved stack traces is genuinely useful — the stdlib story here is awful and conc fixes it correctly. The builder-style pool API (pool.New().WithMaxGoroutines(10).WithErrors().WithContext(ctx)) is composable without being magic. iter.Map and iter.ForEach collapse the feeder-channel pattern that every Go codebase reinvents. The side-by-side stdlib comparisons in the README make the value prop immediately obvious without any hand-waving.
Still pre-1.0 with the README citing a March 2023 target that was clearly missed — no 1.0 tag as of the last push, which is a trust signal problem for production adoption. No support for dynamic pool resizing; if your workload changes shape at runtime you're stuck tearing down and rebuilding pools. The iter package has no early-exit mechanism — once you start ForEach you cannot cancel mid-slice without a context-aware variant that doesn't exist yet. Sourcegraph-backed OSS with light external contributor activity (358 forks, no obvious community outside the Discord) — bus factor is real.