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
cenkalti avatar

cenkalti/backoff

0
View on GitHub↗
4,021 stars·215 forks·Go·MIT·17 views

Backoff

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, including the management of API request retries and inter-service communication in microservices. It handles transient error recovery and distributed system resilience through automated re-execution of failing tasks.

Features

  • Go Concurrency Utilities - Provides advanced concurrency primitives for managing repetitive task execution and synchronization in Go.
  • Go Implementations - Provides a Go-specific implementation of the exponential backoff algorithm for failed operations.
  • Transient Fault Recovery - Provides automated strategies to recover from transient faults through re-execution and backoff.
  • Resilient Networking Patterns - Implements stability patterns using retries to handle temporary network failures or service outages.
  • Backoff Strategies - Provides an exponential backoff algorithm to calculate increasing delays between retry attempts.
  • Retry Strategies - Offers a framework for managing retry logic, attempt limits, and timeouts during system calls.
  • Automated Async Retries - Automatically re-executes failing functions based on a defined number of attempts and backoff strategy.
  • Request Retries - Implements strategies for automatically re-attempting failed network requests to external services.
  • Retry Strategy Interfaces - Decouples the retry logic from specific wait algorithms using interfaces to allow custom delay implementations.
  • Function Execution Wrappers - Encapsulates target operations within closures to manage their repeated execution and error tracking.
  • Inter-Service Communication Reliability - Improves the reliability of inter-service communication in Go by adding smart retry logic to network requests.
  • Retry State Tracking - Tracks the number of failed attempts to enforce maximum retry limits.
  • Algorithms - Exponential backoff algorithm.

Star history

Star history chart for cenkalti/backoffStar history chart for cenkalti/backoff

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.

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

Projects sharing features with Backoff

These projects share indexed features with Backoff. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • go-resty/restygo-resty avatar

    go-resty/resty

    11,704View on GitHub↗

    Resty is a high-level HTTP client library for Go designed for consuming REST services. It provides a streamlined interface for executing network requests, managing server-sent event streams, and automatically mapping JSON and XML responses into data structures. The library includes built-in mechanisms for service resilience and traffic management, such as circuit breakers to prevent cascading failures, token-bucket rate limiting, and automated request retries with exponential backoff. It also features client-side load balancing to distribute outgoing traffic across multiple base URLs and requ

    Gobackoffcircuit-breakercurl-command
    View on GitHub↗11,704
  • 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
  • avast/retry-goavast avatar

    avast/retry-go

    2,929View on GitHub↗

    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 h

    Gogogolanghacktoberfest
    View on GitHub↗2,929
  • sindresorhus/gotsindresorhus avatar

    sindresorhus/got

    14,915View on GitHub↗

    Got is a promise-based HTTP request library for Node.js that supports HTTP/2 and streaming. It provides a system for making network requests with a focus on asynchronous control flow and type-safe API client development. The library is distinguished by its middleware-based request lifecycle, which uses interceptors and plugins to modify request options and response data. It includes a configurable automatic retry mechanism with backoff strategies, a built-in HTTP response cache, and a cookie-jar system for maintaining persistent sessions. Broad capabilities cover data handling through duplex

    TypeScripthttphttp-clienthttp-request
    View on GitHub↗14,915
Compare all 30 related projects→

Frequently asked questions

What does cenkalti/backoff do?

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.

What are the main features of cenkalti/backoff?

The main features of cenkalti/backoff are: Go Concurrency Utilities, Go Implementations, Transient Fault Recovery, Resilient Networking Patterns, Backoff Strategies, Retry Strategies, Automated Async Retries, Request Retries.

Which projects share features with cenkalti/backoff?

Projects with overlapping indexed features include: go-resty/resty — Resty is a high-level HTTP client library for Go designed for consuming REST services. It provides a streamlined… resilience4j/resilience4j — Resilience4j is a fault tolerance library for Java 8 applications designed to handle failures in distributed systems.… avast/retry-go — Retry-go is a utility library for Go that automates the re-execution of failing code blocks and operations until they… sindresorhus/got — Got is a promise-based HTTP request library for Node.js that supports HTTP/2 and streaming. It provides a system for… spring-projects/spring-retry — Spring Retry is a Java library that provides exception handling, automated operation reattempts, backoff strategies,… app-vnext/polly — Polly is a resilience and transient-fault-handling library for .NET applications. It provides a framework for defining…