https://vladvitan.medium.com/simple-techniques-to-minimize-goroutine-leaks-and-channel-misuse-in-go-3527c81d32e8