3 ms·
I doubt very much that you implemented a proper command log with truncation and rollback for leaders and followers, a state machine, leader election with voting
by ccleve 6y ago
I doubt very much that you implemented a proper command log with truncation and rollback for leaders and followers, a state machine, leader election with voting, epochs, timeouts with smart backoffs, pipelining, async transport servers and clients with object serialization, quorums, initialization and discovery, persistent state, graceful shutdown, adding and removing members, a proper event queue, snapshots, and proper distributed testing.
You can build a toy implementation in a weekend if you have a cookbook. A production-ready implementation takes a bit more.
- dnautics 6y agoI believe ucsc has (or had?) a distributed systems class in erlang, and correctly implementing each of those features would be about 3-4 days for a skilled erlang programmer and maybe a week for an undergrad, so that's doable for a team of 2 or 3 undergrads in a term. Maybe out of scope for an undergrad are things like testing high latency/unreliable/jittery connections.