Fan-out distributes work from one channel among multiple goroutines. Each goroutine reads the next available message, like multiple baristas serving customers from one queue. section 9.2.3
A practical fan-out pipeline follows these steps:
- Create a shared input channel, such as a stream of URLs, and start a fixed set of downloadPages goroutines reading from it. section 9.2.3
- Store each worker's output channel, then use fan-in to merge those channels before passing results to the next pipeline stage. section 9.2.3
- Use fan-out only when processing order does not matter, because concurrent completion is nondeterministic. section 9.2.3 section 9.4

