ra VS Riak

Compare ra vs Riak 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)

Riak

Riak is a decentralized datastore from Basho Technologies. (by basho)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
ra Riak
7 1
778 3,903
0.5% 0.3%
8.9 1.9
5 days ago 2 days ago
Erlang Shell
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"

Riak

Posts with mentions or reviews of Riak. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-28.
  • Ask HN: Good examples of fault-tolerant Erlang code?
    4 projects | news.ycombinator.com | 28 Dec 2023
    Step zero is definitely the OTP Design Principles doc (part of the OTP distribution):

    https://www.erlang.org/doc/design_principles/users_guide

    There are some good texts that have more examples:

    Erlang & OTP in Action - https://www.manning.com/books/erlang-and-otp-in-action

    Designing for Scalability with Erlang/OTP - https://www.oreilly.com/library/view/designing-for-scalabili...

    One big example of distributed Erlang is Riak:

    https://github.com/basho/riak

What are some alternatives?

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

lasp - Prototype implementation of Lasp in Erlang.

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

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

Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.

khepri - Khepri is a tree-like replicated on-disk database library for Erlang and Elixir.

MongoDB - The MongoDB Database

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

Apache HBase - Apache HBase

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

RethinkDB - The open-source database for the realtime web.

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

LevelDB - LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.