https://medium.com/@luis_toledo/concurrency-in-go-for-developers-a-guide-to-sync-primitives-807fb7a48121