Three patterns I use constantly in Go:

**1. Fan-out / Fan-in**
Distribute work across goroutines, collect results via a single channel.

**2. Pipeline**
Each stage reads from an input channel, transforms, writes to an output channel. Cancelable via context.

**3. Worker pool**
Fixed-size pool of goroutines pulling from a shared job queue. Prevents goroutine explosion on bursty workloads.

The rule: **channels for coordination, mutexes for state**. Never fight the runtime.