retry-go
Simple golang library for retry mechanism (by avast)
go-retryablehttp
Retryable HTTP client in Go (by hashicorp)
retry-go | go-retryablehttp | |
---|---|---|
5 | 3 | |
2,523 | 2,055 | |
1.2% | 1.4% | |
2.9 | 6.3 | |
3 months ago | 3 months ago | |
Go | Go | |
MIT License | Mozilla Public License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
retry-go
Posts with mentions or reviews of retry-go.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-12-07.
-
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 ?
- Network Error Handling
-
retry package for golang
What is that advantage of your package compared to other ones like https://github.com/avast/retry-go?
-
Go, NATS, gRPC and PostgreSQL clean architecture microservice with monitoring and tracing 👋
processCreateEmail handling create email events, it's start tracing span, increase metrics counters, then unmarshal message data, and call usecase create method, if it fails, we retry for 3 times using retry-go, if it still fails, we check is the current message redelivered and if redelivery count > maxRedeliveryCount(it's up to your business logic, here is 3 times limit), handling error cases can be very different and depends on your service business logic, in this example used Dead Letter Queue approach.
-
Go, Kafka, gRPC and MongoDB microservice with metrics and tracing 👋
Workers validate message body then call usecase, if it's returns error, try for retry, good library for retry is retry-go, if again fails, publish error message to very simple Dead Letter Queue as i said, didn't implement here any interesting business logic, so in real production we have to handle error cases in the better way. And after message success processed commit it.
go-retryablehttp
Posts with mentions or reviews of go-retryablehttp.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-03-22.
- Network Error Handling
-
Building with the GitHub API
Both cases can be mitigated with automated retries. We went with hashicorp/go-retryablehttp as Echoes is built in Go. The library's default retry policy rightly doesn't consider a 401 response as a recoverable error, but this can be changed using the [CheckRetry hook](https://pkg.go.dev/github.com/hashicorp/go-retryablehttp#CheckRetry).
- Any http client framework?
What are some alternatives?
When comparing retry-go and go-retryablehttp you can also consider the following projects:
kafka-go - Kafka library in Go
resty - Simple HTTP, REST, and SSE client library for Go
pgx - PostgreSQL driver and toolkit for Go
heimdall - An enhanced HTTP client for Go
backoff - ⏱ The exponential backoff algorithm in Go
ghinstallation - HTTP Round Tripper for GitHub Apps - Authenticate as an Installation Workflow
retry - An essential retry-operation related library for Golang to build fault-tolerant system.
github - Go library for accessing the GitHub v3 API
kafdrop - Kafka Web UI
vossibility-stack - Visibility for your open source project
Echo - High performance, minimalist Go web framework
swag - Automatically generate RESTful API documentation with Swagger 2.0 for Go.