backoff
shclisem


Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
backoff
-
Retry operations with constant, delays and exponential backoff strategies
Why this instead of https://github.com/avast/retry-go or https://github.com/cenkalti/backoff ?
-
Gosyphus: Retries with exponential backoff
What about https://github.com/cenkalti/backoff?
-
Libraries you use most of your projects?
In addition to the ones you mentioned, I also always use: + sqlc - Compile SQL to type-safe code + gqlgen - generate GraphQL server from schema + oapi-codegen - Go client and server boilerplate from OpenAPI 3 specifications + pester - Go http calls with retries and backoff + backoff - exponential backoff algorithm in Go
-
retry package for golang
May I suggest directions to improve? - add option for exponential or linear backoff - stop early on non-retriable errors Example: https://pkg.go.dev/github.com/cenkalti/backoff/v4 (do not know about its author, just a package I've been using).
- How to implement a retry mechanism for goroutines?
-
Queuing up API requests with waitgroups?
I have used https://github.com/cenkalti/backoff a few years ago and I don't know if it's the best candidate at this point but it's worth to consider in combination with or as an alternative to x/time/rate if you are going that route.
shclisem
-
Queuing up API requests with waitgroups?
A Semaphore might be your best best, check out the code in my repo, https://github.com/madman22/shclisem
-
handling http response
here is my example that uses a drop in replace to use a semaphore to limit the number of in flight requests: https://github.com/madman22/shclisem
-
Reconnect to a server
As long as the pub/sub is an interface, you can create your own implementation that has reconnection and backoffs. I made my own http client that is a drop in replacement for the standard library http client with added methods for more features. https://github.com/madman22/shclisem as an example
What are some alternatives?
gomodifytags - Go tool to modify struct field tags
go - The Go programming language
pretty - Pretty printing for Go values
google-cloud - Google Cloud Client Libraries for Go.
try - Simple idiomatic retry package for Go
Caddy - Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
retry-go - Simple golang library for retry mechanism
clash - A rule-based tunnel in Go.
go-wiki - This is a Golang open-source module that makes it easy to access and parse data from Wikipedia (Wikipedia API wrapper)
mangos - mangos is a pure Golang implementation of nanomsg's "Scalablilty Protocols"
retry - Small, full-featured, 100% test-covered retry package for golang.
go-formatter - A curated list of awesome Go frameworks, libraries and software

