For consistent hashing algorithms, the first results are buraksezer/consistent (This Go library provides consistent hashing with bounded loads and virtual nodes for distributed data partitioning, which squarely matches your need for load balancing and cluster member mapping), reset/hash-ring-ex (This repository provides a consistent hash ring implementation in Elixir, directly fitting the required category though lacking some advanced distributed features) and facebookincubator/katran (Katran uses weighted consistent hashing for packet distribution, but it is a kernel-space Layer 4 load balancer rather than a general-purpose consistent hashing algorithm library for distributed systems). elixir-lang/elixir and grafana/alloy round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Explore the top open-source consistent hashing algorithms on GitHub, ranked by stars and activity, and find the best fit for your project.
Consistent is a Go library that implements consistent hashing with bounded loads to distribute data keys across nodes in a distributed system. It provides a mechanism for mapping keys to cluster members that minimizes data movement during membership changes while preventing performance hotspots. The library distinguishes itself by enforcing strict capacity limits on individual nodes, ensuring that no single member becomes overwhelmed by excessive key assignments. It supports virtual node mapping to distribute physical capacity across the hash ring, allowing for granular control over load bala
This Go library provides consistent hashing with bounded loads and virtual nodes for distributed data partitioning, which squarely matches your need for load balancing and cluster member mapping.
A consistent hash ring implemention for Elixir
This repository provides a consistent hash ring implementation in Elixir, directly fitting the required category though lacking some advanced distributed features.
Katran is an eBPF-based Layer 4 load balancer designed for high-performance network packet forwarding directly within the Linux kernel. It utilizes an XDP network packet processor to bypass the standard kernel network stack, minimizing latency and maximizing throughput for incoming traffic. The system implements weighted consistent hashing to distribute network loads and maintain session persistence across backend servers. It further optimizes the return path through a direct server return gateway, which allows backends to respond directly to clients and removes the load balancer from the out
Katran uses weighted consistent hashing for packet distribution, but it is a kernel-space Layer 4 load balancer rather than a general-purpose consistent hashing algorithm library for distributed systems.
Elixir is a functional, concurrent programming language designed for building scalable and maintainable applications. It operates on the Erlang virtual machine, leveraging a distributed, fault-tolerant runtime environment that manages lightweight processes to ensure system reliability. By utilizing an actor-model supervision strategy, the language enables the creation of high-concurrency backend systems that automatically recover from failures and maintain stability under heavy loads. The language distinguishes itself through a powerful metaprogramming environment that allows developers to ex
Elixir is a general-purpose programming language rather than a consistent hashing library, though its runtime features support building distributed systems.
Alloy is a clustered telemetry collector and observability data pipeline that functions as an OpenTelemetry collector distribution. It acts as a declarative configuration engine for collecting and routing metrics, logs, traces, and profiles from various sources to monitoring backends. The system distinguishes itself through a distributed architecture that uses consistent hashing to balance scraping targets and collection workloads across multiple nodes. It manages fleet-wide settings via remote configuration fetching and a modular system for importing reusable pipeline patterns. As a Kubernet
Alloy is a telemetry collector and observability pipeline rather than a reusable consistent hashing library, even though it uses consistent hashing internally for workload distribution.
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
Failsafe is a Java resilience library focused on circuit breaking, retries, and rate limiting rather than providing a consistent hashing algorithm for data partitioning or load balancing.
Apache Storm is a distributed stream processing framework and real-time data processing engine. It functions as a fault-tolerant distributed computing system designed to analyze data in motion across a cluster of machines for continuous stream computation. The system enables the creation of fault-tolerant data pipelines and scalable event processing by distributing workloads across a network of computing nodes. This architecture ensures low latency and high throughput for live data while allowing the system to recover automatically from individual node failures. The framework provides capabi
Apache Storm is a distributed stream processing framework rather than a dedicated consistent hashing library, making it the wrong category for this search.
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
Resilience4j is a fault tolerance and resilience library for Java applications rather than a consistent hashing algorithm implementation, making it a neighbouring building block for distributed systems rather than the requested tool.
jStorm is a distributed stream processing engine designed for executing low-latency computations on high-volume data streams using Apache Storm topologies. It functions as a real-time data analytics platform and distributed task orchestrator that manages complex data pipelines via directed acyclic graph execution. The system provides a scalable framework for data pipeline management, incorporating backpressure-aware flow control to regulate ingestion rates and dynamic resource allocation to adjust computing resources based on real-time demand. It maintains compatibility with Apache Storm conf
This is a distributed stream processing engine rather than a dedicated consistent hashing library, making it the wrong category even though distributed systems often use hashing underneath.
Groupcache is a distributed caching library designed to coordinate data retrieval and storage across a cluster of nodes. It functions as a peer-to-peer data store that uses consistent hashing to assign specific keys to canonical owners, ensuring that cached items remain predictable and accessible throughout the network. The system distinguishes itself through a request coalescing engine that merges concurrent requests for the same missing key into a single upstream fetch. This mechanism prevents redundant backend load by ensuring that only one process retrieves the required data while sharing
Groupcache is a distributed caching library that uses consistent hashing for data partitioning, but it is primarily a caching framework rather than a general-purpose hashing algorithm library for arbitrary use cases.
Akka is an actor model framework and distributed systems platform used to build concurrent and distributed applications. It provides a toolkit for managing multi-threaded state and behavior through asynchronous message passing, allowing developers to create concurrent applications without manual locks or synchronization. The system functions as a cluster management and event sourcing framework, automating the scaling and coordination of high-availability clusters. It enables the deployment of elastic services that coordinate workloads across multiple network nodes and ensures fault tolerance
Akka is a distributed actor model framework and platform rather than a dedicated consistent hashing library, though it includes cluster routing features that utilize hashing for workload distribution.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| buraksezer/consistent | 774 | Go | MIT | |
| reset/hash-ring-ex | 24 | Elixir | Apache-2.0 | |
| 5.3K |
| C |
| GPL-2.0 |
| elixir-lang/elixir | 26.5K | Elixir | Apache-2.0 |
| grafana/alloy | 2.9K | Go | apache-2.0 |
| jhalterman/failsafe | 4.3K | Java | Apache-2.0 |
| apache/incubator-storm | 6.7K | Java | Apache-2.0 |
| resilience4j/resilience4j | 10.7K | Java | Apache-2.0 |
| alibaba/jstorm | 3.9K | Java | Apache-2.0 |
| golang/groupcache | 13.3K | Go | apache-2.0 |