Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-5423

embedded raft based discovery mechanism

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: In Progress
    • Major
    • Resolution: Unresolved
    • Discovery Standalone 1.0.2
    • None
    • Extensions
    • 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

          Activity

            People

              marett Timothee Maret
              marett Timothee Maret
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: