Details
-
New Feature
-
Status: In Progress
-
Major
-
Resolution: Unresolved
-
Discovery Standalone 1.0.2
-
None
-
None
Description
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
Attachments
Issue Links
- is related to
-
SLING-5435 Decouple processes that depend on cluster leader elections from the cluster leader elections.
- Resolved
- relates to
-
SLING-2939 3rd-party based implementation of discovery.api
- Resolved