gen_leader
khepri
gen_leader | khepri | |
---|---|---|
1 | 3 | |
10 | 307 | |
- | 3.6% | |
- | 8.1 | |
about 12 years ago | about 1 month ago | |
Erlang | Erlang | |
- | Apache License 2.0 |
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.
gen_leader
-
The Erlang Runtime System
There was something called gen_leader back in the day that came out of Jungerl
and an attempt to correct it by Hans Svensson: https://erlang.org/workshop/2005/NewLeaderElection.pdf
This project attempts to modernize it: https://github.com/lehoff/gen_leader
But from what I can tell, theres no standardized solution. There are quite a few libraries I can see out there, however.
khepri
-
The Erlang Runtime System
Erlang/OTP doesn't handle leader election, and by itself is bad at handling netsplits.
There is https://github.com/rabbitmq/ra which is a Raft implementation in Erlang that is Jepsen-tested. You could use it to build "etcd in Erlang", or https://github.com/rabbitmq/khepri which is built on top of Ra.
-
Khepri is a tree-like replicated on-disk database library for Erlang and Elixir
https://rabbitmq.github.io/khepri/ has a bit more information on why you might want to use this, from what I can understand. It's a bit over my head. I guess its sort of simpler to manage a bunch of data on a disk vs a regular db (when not considering that just a bunch of data on disk), mostly around network issues?
What are some alternatives?
partisan - High-performance, high-scalability distributed computing for the BEAM.
brod - Apache Kafka client library for Erlang/Elixir
observer_cli - Visualize Erlang/Elixir Nodes On The Command Line
Binbo - Chess representation written in Erlang using Bitboards, ready for use on game servers
ra - A Raft implementation for Erlang and Elixir that strives to be efficient and make it easier to use multiple Raft clusters in a single system.
vernemq - A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases. The VerneMQ mission is active & the project maintained. Thank you for your support!
CouchDB - Seamless multi-master syncing database with an intuitive HTTP/JSON API, designed for reliability