Implementation of Concurrency Patterns in Go. blocking channels closing channels for select blocs fan out pipeline the done channel