Hi! I've been exploring your epaxos implementation in go (wonderful decoupling by the way) and had a couple of questions:
I'm curious whether this implementation has been analyzed for deadlock freedom. The original epaxos paper discusses potential liveness issues with the commit phase, and I was wondering:
1- Has there been any formal or informal proof that this implementation avoids deadlocks?
2- Are there any known scenarios where the system could deadlock, or have you implemented specific mechanisms to prevent this?
3- Are there any plans to implement epaxos* (the improved variant)? epaxos* addresses some of the liveness concerns in the original protocol and provides better theoretical guarantees.
4- How do you compare Epaxos to Raft?
I'd appreciate any insights you can share on these topics.
Thank you for maintaining this library.
Hi! I've been exploring your epaxos implementation in go (wonderful decoupling by the way) and had a couple of questions:
I'm curious whether this implementation has been analyzed for deadlock freedom. The original epaxos paper discusses potential liveness issues with the commit phase, and I was wondering:
1- Has there been any formal or informal proof that this implementation avoids deadlocks?
2- Are there any known scenarios where the system could deadlock, or have you implemented specific mechanisms to prevent this?
3- Are there any plans to implement epaxos* (the improved variant)? epaxos* addresses some of the liveness concerns in the original protocol and provides better theoretical guarantees.
4- How do you compare Epaxos to Raft?
I'd appreciate any insights you can share on these topics.
Thank you for maintaining this library.