Implementing a distributed key-value store on top of implementing Raft in Go

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • etcd

    Distributed reliable key-value store for the most critical data of a distributed system

  • InfluxDB

    Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.

    InfluxDB logo
  • automat

    Self-service finite-state machines for the programmer on the go.

    Sounds like a job for state machines like you can build out with a library like xstate[0] (though I'm sure there are similar libraries in whatever language you choose. Python has one called automat[1])

    These exist to formalize state logic, you can even produce diagrams based on their definitions

    [0]: https://stately.ai/docs/xstate

    [1]: https://github.com/glyph/Automat

  • coyote

    Coyote is a library and tool for testing concurrent C# code and deterministically reproducing bugs.

    Microsoft has a library/tool called Coyote* that helps with testing distributed systems; you can write tests/specifications, Coyote will systematically explore nondeterminism in your system and check if your tests still pass. If there's a failure, it'll show the sequence of events that led to the failing test.

    I started a project to implement Raft with a KV-store on top, similar to the article, meaning to use Coyote to test it; I didn't get that far before losing interest, though. It's reassuring to read that it took Phil several months to write the code in the post, it's good to know that this is a decidedly nontrivial problem.

    * https://github.com/microsoft/coyote

  • tikv

    Distributed transactional key-value database, originally created to complement TiDB

  • raft

    Golang implementation of the Raft consensus protocol

    I have found the performance tests very tricky to get to pass without having any input from others. The assignment is really very unforgiving, I would wager the test suite is comparable to how commercial Raft implementations are tested (e.g. https://github.com/hashicorp/raft)

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Fault Tolerance in Distributed Systems: Strategies and Case Studies

    4 projects | dev.to | 18 Oct 2023
  • Running 2 web apps in one application using Go Routines

    2 projects | /r/golang | 30 Jan 2023
  • Apache ShardingSphere Enterprise Applications — Bilibili

    4 projects | dev.to | 9 Jun 2022
  • How to Build Your Own Distributed KV Storage System Using the etcd Raft Library (2)

    2 projects | dev.to | 23 Jul 2024
  • FoundationDB at Snowflake: Architecture and Internals (2021) [video]

    1 project | news.ycombinator.com | 17 Jul 2024

Did you konow that Go is
the 4th most popular programming language
based on number of metions?