Last Updated: May 22, 2026
A pipeline is a chain of stages where each stage is a goroutine that reads from an input channel, does some work, and writes to an output channel. The shape lets you compose concurrent transformations the same way you'd chain function calls, but with each stage running on its own goroutine so they all make progress at the same time. This lesson covers the canonical pipeline shape, how stages close their outputs, how cancellation works through a shared done channel, and how to add fan-out inside a stage when one step is the bottleneck.