https://github.com/cenkalti/backoff is a good retry with exponential backoff implementation https://github.com/getlantern/idletiming
But what about throttling (rate limiting)?
- https://stackoverflow.com/questions/43789362/is-it-possible-to-limit-how-many-goroutines-run-per-second
- https://github.com/avast/retry-go
- https://github.com/kubernetes/client-go/blob/master/util/flowcontrol/
- https://github.com/golang/go/wiki/RateLimiting
- https://chromium.googlesource.com/external/github.com/grpc/grpc-go/+/HEAD/stream.go
- https://github.com/beefsack/go-rate
- https://github.com/mennanov/limiters
- https://github.com/abo/rerate
- golang.org/x/time/rate
- https://github.com/didip/tollbooth (http middleware)
- https://github.com/juju/ratelimit
- https://github.com/throttled/throttled
- https://github.com/moby/buildkit/blob/master/util/throttle/throttle.go
- https://github.com/Jeffail/benthos/tree/master/lib/util/throttle
- https://github.com/function61/gokit/blob/master/throttle/throttle.go
- https://github.com/function61/gokit/blob/master/backoff/backoff.go
- https://gitee.com/zhucheer/orange/tree/master/middlewares/throttle
- https://github.com/cloudfoundry/guardian/tree/master/throttle
- https://github.com/GustavoKatel/asyncutils/blob/master/scheduler/examples/throttle/throttle.go
- https://github.com/snail007/goproxy/blob/master/utils/io-limiter.go
- https://github.com/ulule/limiter