A common mistake is launching goroutines with sync.WaitGroup but leaving error handling as an unresolved comment. Shared error slices, mutexes, or error channels add coordination complexity. errgroup.Group combines synchronization, error propagation, and context cancellation: call Go with a func() error, return failures from that function, and call Wait to obtain the first non-nil error. section 9.13
Use WithContext when parallel calls should share cancellation: an early failure can make waiting for slower calls unnecessary, provided those calls respond to the context. section 9.13

