Concurrency Patterns: Fan-Out/Fan-In, Pipelines, and Worker Pools | SudoMonks