Our great sponsors
-
gen_leader
A project to unify various implementations of the Erlang library gen_leader into a modern, robust single implementation
-
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.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
khepri
Khepri is a tree-like replicated on-disk database library for Erlang and Elixir. (by rabbitmq)
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.
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.
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.