กระจายการทำงานหลายๆ งาน ผ่านหลายๆ goroutine ง่ายๆ ด้วย package errgroup
บางการทำงานเช่นโหลดข้อมูลจากไฟล์หลายๆ record แล้วเขียนลง database เราไม่จำเป็นต้องให้มันทำงานทีละ 1 record เสร็จก่อนแล้วค่อยไปทำเขียน record ถัดไปก็ได้ เราสามารถแยกการทำงานให้ทำในหลายๆ goroutine แล้วใช้ความสามารถของเครื่อง (CPU) ให้เต็มที่ถ้ามีหลายๆ CPU หลายๆ core ซึ่ง package errgroup ช่วยเราทำแบบนี้ได้พร้อมจัดการ error และ cancel context ได้อีกด้วย