Closed matthewaveryusa closed 4 years ago
Yes, I'd be interested. My medium term goal is to be feature-complete wrt the raft paper.
I think there are still areas of code that need to be improved and thought better about. Not sure how urgent such a feature would be for you, but maybe I'd suggest waiting a bit. Anyway, it's just a suggestion, if you find your way into the code and you have a PR to submit, I'll be happy to merge.
I did not tag this project as v1 since I still want to break API compatibility if I need to.
Let me start by saying that this implementation looks fantastic and I'm really excited to see such a library written in C. What are your opinions on adding a pre-vote phase to the vote? From Ongardie's long-form thesis paper (https://github.com/ongardie/dissertation#readme), the concept of pre-vote is explained:
I've worked on networks where these situations are not as rare (world-distributed with tighter heartbeats) and it can cause non-negligible leadership churn.
Here's an example of how it works in my toy raft implementation: (https://github.com/matthewaveryusa/raft.ts/blob/master/src/server.ts#L401-L455)
Would you be interested in a pull request with pre-voting?