The errgroup package is a replacement of the standard sync.WaitGroup package.
g := new(errgroup.Group)
g.SetLimit(int(someVar))
for i := 0; i < int(someVar); i++ {
g.Go(func() error {
// Processing here
return nil
})
}
if err := g.Wait(); err != nil {
return err;
}
// Continue