The problem is 2 fold.  The marketing on Go is that it has great concurrency built in, but it doesn&#x27;t support 2 extremely common concurrency use cases out of the box:<p>1) lock free queues<p>2) concurrent maps<p>Worse than that, the language makes it very difficult to write libraries to support those use cases.<p>So sure, in your use case, and maybe the Golang language maintainers use cases, dispensing with channels is bad advice.<p>But it turns out that nearly every single team that has tried to scale golang servers has come to the same position. <i>Give up channels as your concurrency primitives and revert to the sync package if you need to really scale golang programs</i>