Hi @epimenov thank you for the feedback. The shuffle method starts a goroutine for each inbound channel, so one busy outbound channel will not block the whole system. That being said I probably should add two more features, one of which is to add a channel size rather than always using a 0 size channel, and the other is to change it to select the first non-blocking outbound channel. I don't consider the blocking part always negative, because handling back-pressure is need at one point or another, but you are right, the method should not introduce starvation.