Channels are Go's communication mechanism and the standard way for goroutines to communicate. But there are many uses of a channel that go beyond simply sending data to a goroutine.
This talk will start with the basics of channel communication and work through examples of channels as buffers, channels as memory managers, channels as signaling devices, channels for coordination, for load balancing and the many uses of channels of channels.
The talk will be suitable for beginners and for intermediate Go programmers. All the code shown in the talk will be released.