/raptr

Raft distributed consensus over HTTP

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Raptr

raptr (n.m.): old norse for raft

Raptr is a burgeonning implementation of a Raft cluster, based on Kontiki, that aims at providing an out-of-the-box library for building linearizable distributed data storage systems communicating over plain HTTP(S), in Haskell.

Build Status

Usage

TBD

Requirements

  • Raptr should be easily embeddable within a host system and impose minimal requirements in terms of infrastructure and dependency, hence the use of plain HTTP as transport protocol and opaque ByteStrings as "commands" to be linearized by the system,
  • Raptr should be safe and correct, e.g. live up to the promises of linearizability and resilience of underlying protocol:
    • Linearizable means that concurrent writes appear to take effect instantaneously at some point between start and end of write request by a client,
    • Resilient means committed data must survive irrecoverable crash of a minority of servers in a cluster,

Contributing

Pull requests are welcomed.