The semaphore resiliency pattern for golang.
Creating a semaphore takes two parameters:
sem := semaphore.New(3, 1*time.Second) if err := sem.Acquire(); err != nil { // could not acquire semaphore return err } defer sem.Release()