raft
Olric
Our great sponsors
raft | Olric | |
---|---|---|
7 | 28 | |
7,816 | 3,005 | |
1.1% | - | |
6.1 | 6.1 | |
9 days ago | 2 months ago | |
Go | Go | |
Mozilla Public License 2.0 | 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.
raft
-
Leader election library
Depending on your exact needs, you could try HashiCorp's Raft implementation: https://github.com/hashicorp/raft
-
Implementing a distributed key-value store on top of implementing Raft in Go
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)
- Raft Is So Fetch: The Raft Consensus Algorithm Explained Through Mean Girls
-
Concurrency in Go is hard
While searching on GitHub, I found a pull request in the Raft implementation by Hashicorp (a distributed consensus algorithm), which we can use to demonstrate the following problem. Let’s start by showing the code (at api.go):
-
rqlite, the light distributed database built with Go and SQLite, v7.2 now with autoclustering via DNS and DNS SRV
Production-grade distributed consensus system.
-
Raft Consensus Protocol
In general Hashicorp's repos are high quality:
https://github.com/hashicorp/raft
Example application: https://github.com/Jille/raft-grpc-example
Olric
-
SQLGateway - Access SQL databases over HTTP - Written in Go 💙
A fun addition could be to remove the need for Redis in clustered mode by using something like this: https://github.com/buraksezer/olric
-
Hacker News top posts: Nov 27, 2022
Olric: Distributed, embeddable data structures in Go\ (7 comments)
- Redcon - Redis compatible server framework for Rust
-
IMDGO - In-memory Data Grid in Go
How does it compare to Olric?
-
go-generics-cache: An in-memory key:value store/cache library for Go Generics
Just to follow up -- Olric ends up being closer to what I need.
-
rqlite 6.0: the evolution of a distributed database design
Have you considered using olric[0]?
Just asking so that I can piggyback on your research :)
-
Best examples of a Go client
Olric distributed cache, https://github.com/buraksezer/olric
What are some alternatives?
serf - Service orchestration and management tool.
tendermint - ⟁ Tendermint Core (BFT Consensus) in Go
torrent - Full-featured BitTorrent client package and utilities
etcd - Distributed reliable key-value store for the most critical data of a distributed system [Moved to: https://github.com/etcd-io/etcd]
dragonboat - A feature complete and high performance multi-group Raft library in Go.
redis-lock - Simplified distributed locking implementation using Redis
DHT - BitTorrent DHT Protocol && DHT Spider.
ringpop-go - Scalable, fault-tolerant application-layer sharding for Go applications
grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC
raft-grpc-example - Example code for how to get hashicorp/raft running with gRPC
resgate - A Realtime API Gateway used with NATS to build REST, real time, and RPC APIs, where all your clients are synchronized seamlessly.