Timothee Maret created SLING-5423: ------------------------------------- Summary: embedded raft based discovery mechanism Key: SLING-5423 URL: https://issues.apache.org/jira/browse/SLING-5423 Project: Sling Issue Type: New Feature Components: Extensions Affects Versions: Discovery Standalone 1.0.2 Reporter: Timothee Maret
The Raft consensus algorithm [0] is a good pick for implenting the discovery API or more generally clustering solutions. Indeed, Raft algorithm design aims at being "easy" to understand and thus "easy" to be implemented/debugged maybe by mere mortals. One of the major implementation of Raft is etcd [1] which Sling can already leverage (SLING-4842). However, etcd requires an extra piece of infrastructure to be deployed (the etcd servers) which can't be shipped as part of the Sling quickstart (Go vs Java techs). Using an embedded Raft based discovery and clustering mechanism would bring an easy to deploy solution (OOTB) and based on proven algorithm. As Raft is designed to be easy to implement, many implementations already exists [0]. Ideally an existing implementation could be reused instead of reimplementing it though. An interesting one is Copycat [2] which is now released and Apache 2 licensed. [0] https://raft.github.io [1] https://github.com/coreos/etcd [2] https://github.com/atomix/copycat -- This message was sent by Atlassian JIRA (v6.3.4#6332)