Production-Ready
Hi @kanaka Is this implementation production-ready?
Thanks, KL
Nope. It really needs a complete set of correctness tests. The work I did for the online simulation would allow deterministic testing so that would make testing easier. However, the actual testing (and fixing the corresponding bugs) is still to be done. Also, there has a been some significant changes to the paper since I implemented it (especially around re-configuration).
Is there any plans on updating this package? Or should i just build a new implementation?
I do have plans to continue working on this but have no timeline.
I'm also happy to take review/merge high quality patches/pulls.
Is it still the case that this may not be production ready?
@mvdavid7 I've been using it fairly successfully for research, but this is a personal project that is not formally supported, endorsed or vetted by any organization. It is not running "in production" anywhere that I am aware of. There are also some things that would need to be addressed to make it usable in production for any length of time, in particular, log compaction is not yet implemented so the log would continue to grow over time and never be pruned/compacted. Also, full client linearizability is not implemented yet. I am happy to take pull requests especially around correctness.
Hi from the future! @kanaka
I would be interested in porting this excellent repo to TypeScript and working on the missing features. Any chance you'd be interested in collaborating?
My main use case would be using it alongside PeerJS to establish P2P CFT shared states for multiple clients in the browser. I would probably create some abstraction over this as well to make it easier to use.
Let me know! :)
@DaniGuardiola I would love to if my situation were different. But unfortunately I'm at a point with my job and family where I don't have the time to be able to commit to it. I think it's a cool idea and that you should pursue it if you are passionate about it. And it's the sort of thing that I was hoping would be built on raft.js (either by me or others). You might email the raft-dev mailing list. There might be someone there who might be interested in collaborating or be able to refer you to people or groups (i.e. university research students, etc) who might be interested in working together on the project. Good luck!
@kanaka
Okay, good to know! Could I still hit you up if I have trouble understanding your code at some point? If not, I completely understand.
Thanks a lot!
Oh, and could I grab the "raft.js" name if I go forward with the fork?