channels are slow, do not use it for synchronizing access
don't use channels as a queue
channels provide guarantees in your software for orchestration
channels: don't use for performance, use them for continuity: to keep things going
the channels are not the buffer. Goroutines can be the buffer.
if you can use a buffer channell with a guarantee that it's not gonna block, use it. think of a fan-out pattern. brilliant use of a buffer channel because we know exactly how many buffers we need. we are getting our continuity.