They can be either buffered or unbuffered, and some designs will deadlock with unbuffered channels but not with channels of even size 1. Pipes are of course buffered; I think that unbuffered channels are actually the special case, even though for whatever reasons Go tutorials always talk about unbuffered channels first.