Writing code is hard. Writing code that has to deal with parallelism and concurrency is harder. Doing all of that an keeping it efficient is challenging.
https://blogtitle.github.io/go-advanced-concurrency-patterns-part-1/
https://blogtitle.github.io/go-advanced-concurrency-patterns-part-2-timers/
https://blogtitle.github.io/go-advanced-concurrency-patterns-part-3-channels/