Now that we are familiar with pipelines and stages, we can introduce two new concepts:
- Muxing (multiplexing) or fan-out: Receiving from one channel and sending to multiple channels
- Demuxing (demultiplexing) or fan-in: Receiving from multiple channels and sending through one channel
This pattern is very common and allows us to use the power of concurrency in different ways. The most obvious way is to distribute data from a channel that is quicker than its following step, and create more than one instance of such steps to make up for the difference in speed.