You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Timothee Maret (JIRA)" <ji...@apache.org> on 2016/01/11 17:10:40 UTC

[jira] [Created] (SLING-5423) embedded raft based discovery mechanism

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)