Creator of Raft Algorithm introduces LogCabin
I have a slightly off-topic question for Diego and other people experienced with distributed systems.<p>Why are consensus algorithms always developed as systems, not as libraries? Zookeeper, etcd and LogCabin all operate as a cluster of processes which other nodes connect to over a client library.<p>I can imagine that the distributed-state-machine-replication-mechanism of Raft or ZAB being implemented as a library where the user has to provide an implementation of the communication layer. Such a library can be used as a starting point for building other more complex systems which aim to provide a low-friction install experience. For example, one good thing about both Cassandra and ElasticSearch is that they both have homogeneous clusters where all nodes play the same role. Incidentally, from what I understand, they both embed a consensus implementation within.<p>Similarly, a membership service (and failure detector) over gossip protocols will also be very useful.<p>An installation guide which starts with "First, install Zookeeper cluster. Then, install a SWARM cluster. Then ..." is not very appealing. That being the case, I wonder <i>why</i> there is no mature OSS library which provides these services. What does HN think about this situation?