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)

Reply via email to