Show HN: A reference use of Hashicorp's Raft implementation
github.com
github.com
1: The original link.
Late to the conversation, but would you mind updating the README to elaborate upon this? I'm looking for the simplest implementation of Raft but need to be certain that I'm getting the "most recent" value for a key (in other words the last value that passed consensus).
I'd like to be able to either:
1) turn on that functionality without modifying the code
2) see a code snippet that achieves it by reading from some number of nodes or whatever
3) be directed to a link explaining if/why it's not possible
Otherwise, cool project, congrats!
You might like to read a fuller description of this issue for another project based on Raft, called rqlite:
https://github.com/rqlite/rqlite/blob/master/doc/CONSISTENCY...
https://github.com/rqlite/rqlite/issues/5
I'll include a link to this from the README.
The hashicorp/raft library actually seems to have a bunch of production users, namely Consul ofcourse but also Flynn (used in service discovery and metadata store called discoverd) and I would assume still InfluxDB.
It's currently seeing a resurgence in development as the author of the Raft paper has begun contributing to the library also.
Disclaimer: I work on the Flynn project.
I'm just more familiar with the one from Hashicorp, and it's used in a few production systems.
I also expect it to become much better now that development has picked up pace again.
You could probably multiplex the use of the TCP connections to do everything, but that would require even more complexity.
In fact, I think the code should not even call any kernel function. Raft is an algorithm after all.