A group that exists to halt execution in a main go thread, until all waited processes signals done. Required for concurrency in Goroutine
Example
var wg sync.WaitGroup
wg.Add(1)
go func(){
defer wg.Done() // signal done after function exits
fmt.Println("i am running")
}()