ra VS khepri

Compare ra vs khepri and see what are their differences.

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. (by rabbitmq)

khepri

Khepri is a tree-like replicated on-disk database library for Erlang and Elixir. (by rabbitmq)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
ra khepri
7 3
777 304
1.3% 3.6%
8.9 8.1
5 days ago 19 days ago
Erlang Erlang
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

ra

Posts with mentions or reviews of ra. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-14.
  • The Erlang Runtime System
    3 projects | news.ycombinator.com | 14 Feb 2024
    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.

  • Ask HN: Good examples of fault-tolerant Erlang code?
    4 projects | news.ycombinator.com | 28 Dec 2023
    Just to add to this, there are some implementations of things like consensus algorithms in Erlang such as Ra: https://github.com/rabbitmq/ra
  • Elixir at Ramp
    2 projects | news.ycombinator.com | 24 Nov 2023
  • An Animated Introduction to Elixir
    6 projects | news.ycombinator.com | 8 Nov 2022
    You may find these interesting...

    - "The Onion Layer Theory" https://learnyousomeerlang.com/building-applications-with-ot...

    - "On Erlang, State and Crashes" http://jlouisramblings.blogspot.com/2010/11/on-erlang-state-...

    - "Why Restarting Works" https://ferd.ca/the-zen-of-erlang.html (search for "Heisenbug")

    > you should store the state in the external system

    Disk works too, but if you're multi-node this means you now have a distributed database embedded in your system, which may or may not be your goal :)

    RabbitMQ does this, they developed a library for "persistent, fault-tolerant and replicated state machines" based on Raft: https://github.com/rabbitmq/ra.

  • Question about a Decentralized Timeline
    2 projects | /r/elixir | 19 Dec 2021
  • Building Aggregates in Elixir and PostgreSQL
    2 projects | /r/elixir | 13 Jul 2021
    Here is link number 1 - Previous text "Ra"

khepri

Posts with mentions or reviews of khepri. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-14.
  • The Erlang Runtime System
    3 projects | news.ycombinator.com | 14 Feb 2024
    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
    2 projects | news.ycombinator.com | 1 Feb 2023
    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?

When comparing ra and khepri you can also consider the following projects:

lasp - Prototype implementation of Lasp in Erlang.

partisan - High-performance, high-scalability distributed computing for the BEAM.

MicroRaft - Feature-complete implementation of the Raft consensus algorithm in Java

brod - Apache Kafka client library for Erlang/Elixir

asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

observer_cli - Visualize Erlang/Elixir Nodes On The Command Line

Atomix - A Kubernetes toolkit for building distributed applications using cloud native principles

Binbo - Chess representation written in Erlang using Bitboards, ready for use on game servers

buffstreams - A library to simplify writing applications using TCP sockets to stream protobuff messages

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!

fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

CouchDB - Seamless multi-master syncing database with an intuitive HTTP/JSON API, designed for reliability