awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
avast avatar

avast/retry-go

0
View on GitHub↗
2,929 stars·174 forks·Go·MIT·22 viewsgodoc.org/github.com/avast/retry-go↗

Retry Go

Retry-go is a utility library for Go that automates the re-execution of failing code blocks and operations until they succeed or exhaust configured attempt limits. It provides mechanisms for handling transient failures, capturing both computed results and final errors from repeatedly executed functions.

The library supports configurable retry timing through fixed intervals, exponential backoff strategies, and randomized jitter to control recovery speed and prevent overwhelming recovering services. It also includes error filtering rules that trigger retries on specific error conditions while halting execution immediately for unrecoverable failures, alongside lifecycle management features such as timeouts, cancellation signals, attempt callbacks, and reusable persistent policies.

Features

  • Error Handling Automation - Automates the re-execution of failing code blocks in Go programs until they succeed or exhaust attempt limits.
  • Retry Libraries - Executes operations with configurable retry limits, exponential backoff, jitter, and error-filtering rules.
  • Retry Policies - Allows instantiating persistent retry policies to apply across multiple execution cycles and minimize allocation overhead.
  • Backoff Strategies - Enables configuring retry timing using fixed intervals, exponential backoff, randomized jitter, or custom strategies to control recovery speed.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI
  • Automatic Task Retries - Executes failed operations repeatedly according to configurable limits and rules until success or exhaustion.
  • Retry Policy Management - Manages retry contexts with timeouts, cancellation signals, attempt callbacks, and reusable configurations across operations.
  • Conditional Retry Policies - Supports defining specific error conditions that trigger retries while halting execution immediately for unrecoverable failures.
  • Transient Error Recovery Policies - Provides a utility for handling transient failures in Go code by automatically re-running functions until success.
  • Resilient Networking Patterns - Handles transient network drops and server timeouts by automatically repeating failed HTTP calls and API requests.
  • Star history

    Star history chart for avast/retry-goStar history chart for avast/retry-go

    How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

    Frequently asked questions

    What does avast/retry-go do?

    Retry-go is a utility library for Go that automates the re-execution of failing code blocks and operations until they succeed or exhaust configured attempt limits. It provides mechanisms for handling transient failures, capturing both computed results and final errors from repeatedly executed functions.

    What are the main features of avast/retry-go?

    The main features of avast/retry-go are: Error Handling Automation, Retry Libraries, Retry Policies, Backoff Strategies, Automatic Task Retries, Retry Policy Management, Conditional Retry Policies, Transient Error Recovery Policies.

    Which projects share features with avast/retry-go?

    Projects with overlapping indexed features include: jd/tenacity — Tenacity is a Python retry library and fault tolerance framework designed to automatically re-execute failing… resilience4j/resilience4j — Resilience4j is a fault tolerance library for Java 8 applications designed to handle failures in distributed systems.… spring-projects/spring-retry — Spring Retry is a Java library that provides exception handling, automated operation reattempts, backoff strategies,… cenkalti/backoff — This is a Go library providing a framework for managing repetitive task execution and implementing exponential backoff… yiisoft/yii2-queue — This project is a PHP framework for offloading time-consuming tasks to background workers, enabling asynchronous… temporalio/temporal — Temporal is a distributed workflow orchestration engine designed to manage fault-tolerant, stateful, and long-running…

    Projects sharing features with Retry Go

    These projects share indexed features with Retry Go. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
    • jd/tenacityjd avatar

      jd/tenacity

      8,375View on GitHub↗

      Tenacity is a Python retry library and fault tolerance framework designed to automatically re-execute failing functions based on custom conditions, wait intervals, and stop criteria. It provides a mechanism to apply retry logic to both synchronous functions and asynchronous coroutines. The library implements exponential backoff to increase delays between retries, helping to manage transient network failures and prevent the overloading of services. Its capabilities cover the definition of retry conditions based on exception types or return values, as well as the enforcement of duration limits

      Pythonfailurehacktoberfestpython
      View on GitHub↗8,375
    • resilience4j/resilience4jresilience4j avatar

      resilience4j/resilience4j

      10,689View on GitHub↗

      Resilience4j is a fault tolerance library for Java 8 applications designed to handle failures in distributed systems. It provides a comprehensive suite of resilience patterns including resource isolation, request throttling, retries, and timeouts. The project implements specific stability mechanisms such as circuit breakers to prevent cascading failures, bulkheads for system resource isolation, and rate limiters to cap execution rates. It also includes a retry framework with backoff policies and timeout enforcement to manage transient faults and maximum execution durations. Additional capabi

      Javabulkheadcircuitbreakermetrics
      View on GitHub↗10,689
    • cenkalti/backoffcenkalti avatar

      cenkalti/backoff

      4,021View on GitHub↗

      This is a Go library providing a framework for managing repetitive task execution and implementing exponential backoff strategies. It serves as a concurrency tool designed to prevent system overload during failures by retrying operations with increasing delays. The project implements a retry strategy framework that manages attempt limits and timeouts during unstable network or system calls. It specifically provides an implementation of the exponential backoff algorithm to handle failing operations. The library covers reliability patterns for mitigating transient failures and service outages,

      Gogolang
      View on GitHub↗4,021
    • spring-projects/spring-retryspring-projects avatar

      spring-projects/spring-retry

      2,268View on GitHub↗

      Spring Retry is a Java library that provides exception handling, automated operation reattempts, backoff strategies, and recovery mechanisms for application workflows. It handles transient operation failures through declarative annotations, programmatic templates, stateful context storage, and fallback recovery paths. The library controls retry behavior by specifying attempt counts, timeouts, and inclusion or exclusion rules for specific exception types. It pauses execution between attempts using fixed, exponential, or randomized backoff intervals, and caches retry state outside the call stac

      Java
      View on GitHub↗2,268
    Compare all 30 related projects→

    Curated searches featuring Retry Go

    Hand-picked collections where Retry Go appears.
    • Flow control patterns