30 open-source projects similar to jd/tenacity, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Tenacity alternative.
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
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
Failsafe is a JVM resilience library providing a collection of fault tolerance patterns for Java applications. It functions as an asynchronous execution wrapper that runs tasks in the background and returns futures to prevent thread blocking. The library allows for the composition of resilience policies, enabling multiple patterns to be stacked into a sequential pipeline. It includes specific implementations for circuit breaking to prevent system overload, rate limiting to control traffic flow, and a framework for managing retries and fallbacks. Capability areas cover traffic management thro
pysheeet is a technical reference library providing a curated collection of code snippets and implementation patterns for advanced Python development, system integration, and high-performance computing. It serves as a comprehensive guide for implementing low-level network programming, native C extensions, and asynchronous and concurrent programming. The project provides specialized frameworks for the development and deployment of large language models, including tools for distributed GPU inference and high-performance serving. It also includes detailed patterns for high-performance computing
Failsafe is a JVM fault tolerance library and resilience pattern framework. It provides a toolkit for implementing circuit breakers, rate limiters, and other stability patterns within Java Virtual Machine applications to prevent cascading failures in distributed systems. The project is distinguished by its policy-based execution pipeline, which allows for the composition of multiple resilience patterns into a sequential flow. It features a state-machine circuit breaker to manage service recovery and a leaky-bucket rate limiter to control operation frequency. The library covers a broad range
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
Boltons is a comprehensive utility toolkit and extension of the Python standard library. It provides a collection of reusable recipes and specialized data structures, system utilities, and helper libraries designed to support common programming tasks across various domains. The project is distinguished by a standard-library-only dependency model, ensuring maximum portability with zero external dependencies. It provides advanced implementations for data structures, such as immutable mappings and priority queues, alongside recursive data transformation tools for reshaping complex nested diction
Kue is a Redis-backed job queue library for Node.js that provides a complete system for defining, scheduling, and processing background work. It stores job metadata and state in Redis lists and sorted sets, enabling persistent, in-memory operations with configurable concurrency control and priority-sorted processing. The library includes a RESTful HTTP API for managing jobs and a web-based monitoring dashboard for inspecting job status, progress, and logs. The system distinguishes itself through its event-driven worker model, where workers listen for job events via Redis pub/sub and process j
Temporal is a distributed workflow orchestration engine designed to manage fault-tolerant, stateful, and long-running background processes. It functions as a platform for coordinating complex cross-service operations, ensuring consistency and reliability in distributed environments by decoupling workflow orchestration from task execution. The platform distinguishes itself through a deterministic, event-sourced execution model that reconstructs workflow state by re-executing code from an immutable event log. This approach isolates non-deterministic side effects into managed activities, allowin
Workflow is a platform for executing long-running, stateful processes that automatically persist progress and recover state after system interruptions. It functions as a durable orchestration engine designed to manage complex, multi-step asynchronous operations within distributed systems. The framework distinguishes itself through event-sourcing and checkpointing mechanisms that record execution steps as an immutable log, allowing for precise state reconstruction after failures. It provides sandboxed task isolation to run side-effect-heavy logic in restricted environments, ensuring that sensi
ZIO is a functional effect system for the JVM that models asynchronous and concurrent programs as pure, composable values with typed error handling and dependency injection. Its core identity is built on fiber-based concurrency, where lightweight, non-blocking fibers execute millions of concurrent tasks with structured lifecycle management, and a dual-channel error model that separates expected business failures from unexpected system defects at compile time. The system provides effect-typed dependency injection through a layer-based dependency graph, pull-based reactive stream processing with
Faktory is an open-source work server that queues, dispatches, and manages background jobs across multiple programming languages. It stores job payloads as JSON hashes in a Redis-backed queue and provides language-specific client and worker libraries that enable any language to push jobs to the server or fetch and execute them. The server includes a batch workflow orchestrator that groups jobs into batches with completion tracking for coordinating multi-step asynchronous workflows. It features a configurable job uniqueness filter that prevents duplicate enqueues within a time window, an expon
This project serves as a comprehensive technical reference for the architecture and design of data-intensive applications. It provides a structured analysis of the fundamental principles required to build reliable, scalable, and maintainable software systems, covering the core trade-offs inherent in modern data infrastructure. The repository explores the mechanics of distributed data management, including strategies for replication, partitioning, and achieving consensus across multiple nodes. It details the design of storage engines, indexing techniques, and transaction management models, whi
Machinery is a distributed task queue and asynchronous workflow engine. It provides a system for processing heavy workloads outside the main request flow using a network of distributed background workers and a message-based job orchestrator. The project manages complex task lifecycles through sequential chaining, where results are passed between tasks, and parallel coordination, which can trigger callback tasks upon the completion of a group. It supports periodic workflow scheduling for recurring jobs and delayed execution via specific timestamps. The system includes capabilities for result
This is a fault tolerance library for Go designed to prevent cascading failures by isolating unhealthy remote services using the circuit breaker pattern. It serves as a resilience tool for managing request timeouts, defining fallback logic, and protecting remote systems from overloading. The library differentiates itself through the integration of a health metrics exporter that streams real-time performance and status data of remote connections to external monitoring tools. It combines this observability with a circuit breaker state machine that tracks success and failure rates to block calls
This project provides a framework for managing multi-agent systems, designed to automate complex software development, infrastructure, and business workflows. It functions as a multi-agent workflow orchestrator that routes tasks to domain-specific workers while maintaining state persistence and infrastructure automation. By leveraging large language models, the system decomposes high-level objectives into actionable plans, ensuring that complex operations are executed with consistency and reliability. The framework distinguishes itself through its hierarchical agent registry and policy-driven
Hatchet is an open-source durable workflow engine and task orchestration platform. It provides a framework for building and executing fault-tolerant, multi-step pipelines as directed acyclic graphs (DAGs), with automatic retries, scheduling, and real-time observability. The system is built around durable task checkpointing, which persists execution state after each step so work can resume from the last checkpoint after a worker crash or restart, and it supports event-driven task resumption that pauses a task until a matching external event arrives. The platform distinguishes itself through it
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,
PraisonAI is an autonomous AI agent platform that coordinates multiple LLM-powered agents for research, planning, and execution of complex workflows. It functions as a multi-agent orchestration framework, a workflow builder, and a Model Context Protocol server, while also providing retrieval-augmented generation through vector knowledge bases. Agents can interact via CLI, web, or standardized protocols with sandboxed code execution. The platform distinguishes itself with a rich set of agent communication protocols, including A2A, REST, WebSocket, voice and telephony integration, and MCP, allo
Koog is an LLM agent framework used to build autonomous entities that execute tool-based workflows. It utilizes a graph-based workflow engine to define agent behaviors and decision paths as a directed graph of nodes and edges. The framework distinguishes itself through a model provider orchestrator that enables dynamic switching, load balancing, and automatic fallbacks between different AI backends. It implements the Model Context Protocol to connect agents to remote tool servers and features a RAG memory system using vector embeddings to maintain long-term conversation context. The project
This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency design, distributed systems, and microservices architecture. It provides detailed strategies for decomposing monolithic applications, managing service discovery, and implementing the architectural patterns required for scalable backend environments. The repository distinguishes itself through an extensive collection of big data algorithmic references and database scaling strategies. It covers memory-efficient techniques for analyzing massive datasets, such as Top-K element extrac
OTP is a concurrent programming framework and distributed computing platform that serves as the Erlang runtime environment. It provides a fault-tolerant operating environment designed for building scalable, real-time systems that manage massive amounts of simultaneous tasks through asynchronous messaging. The environment is distinguished by its use of an actor-based concurrency model and hierarchical supervision trees that automatically restart failed processes. It supports hot code loading to allow system updates without downtime and utilizes a preemptive user-space scheduler to manage light
This project is a comprehensive educational resource and curriculum focused on site reliability engineering, distributed systems, and infrastructure operations. It provides technical guides, a systems engineering course, and instructional manuals designed to teach the principles of managing large-scale computing environments. The curriculum covers high-level architectural design for scalability and resilience, including fault-tolerant infrastructure, high-availability patterns, and microservices decomposition. It emphasizes the practical application of site reliability engineering through the
Hystrix is a latency and fault tolerance library designed to prevent cascading failures in distributed systems. It functions as a circuit breaker implementation that monitors failure thresholds and opens circuits to isolate remote calls when downstream services degrade. The project distinguishes itself by providing multiple isolation mechanisms, utilizing dedicated thread pools and semaphores to ensure that latency in one dependency does not saturate the entire system. It also features a request collapsing and batching engine that groups concurrent calls into single executions to reduce the t
Finagle is a distributed service mesh and fault-tolerant remote procedure call framework. It provides a protocol-agnostic network library that implements a consistent interface for different network standards, including HTTP and Thrift. The project distinguishes itself by integrating a fault tolerance library that prevents cascading failures through circuit breaking and timeout management. It also implements a distributed tracing system to track requests across network boundaries and visualize call graphs. The framework covers several core capability areas, including dynamic service discover
Akka.NET is an actor model framework used for building concurrent and distributed applications. It functions as a distributed computing platform and state manager that enables isolated actors to communicate via asynchronous message passing, ensuring thread-safe state management without manual locks. The project is distinguished by its decentralized coordination capabilities, including a distributed state manager that uses sharding and dynamic rebalancing to maintain high availability. It incorporates an event sourcing engine that persists state as a sequence of events in an append-only log an
Akka Core is an actor model framework and asynchronous concurrency library used for building scalable and resilient distributed systems. It provides a distributed computing platform and fault tolerant runtime that manages communication and state across networked nodes. The system uses location-transparent messaging and a cluster management system to organize nodes into high-availability architectures. This allows for the creation of elastic clusters that scale resources on demand and coordinate distributed workloads. The platform handles concurrent state management and distributed systems or
Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer
rpcx is a high-performance remote procedure call framework for building scalable microservices in Go. It functions as a binary protocol RPC system and a service mesh, providing the necessary infrastructure for low-latency inter-service communication and distributed cloud environments. The project features a cross-language service gateway that provides an HTTP entry point, allowing clients written in any programming language to invoke Go remote services via protocol translation. It also includes a specialized RPC traffic analyzer for capturing and analyzing binary packets to debug network comm
Lunatic is a WebAssembly runtime and concurrent process manager that implements an Erlang-inspired model of lightweight concurrency and fault tolerance. It functions as a distributed actor system where isolated processes communicate via message passing across a network of linked nodes. The system utilizes a WebAssembly sandbox environment to isolate memory and restrict system call permissions for each individual process. This capability-based security model ensures that processes are sandboxed to safely execute untrusted code. The platform provides a fault-tolerant supervision tree for hiera