/addendum

A Paxos-driven `etcd`-alike.

Primary LanguageJavaScriptMIT LicenseMIT

Actions Status codecov License: MIT

A Paxos-based etcd-alike in JavaScript.

What Where
Discussion #1
Documentation https://bigeasy.github.io/addendum
Source https://github.com/bigeasy/addendum
Issues https://github.com/bigeasy/addendum/issues
CI https://travis-ci.org/bigeasy/addendum
Coverage: https://codecov.io/gh/bigeasy/addendum
License: MIT

Addendum installs from NPM.

npm install addendum

Living README.md

This README.md is also a unit test using the Proof unit test framework. We'll use the Proof okay function to assert out statements in the readme. A Proof unit test generally looks like this.

require('proof')(4, okay => {
    okay('always okay')
    okay(true, 'okay if true')
    okay(1, 1, 'okay if equal')
    okay({ value: 1 }, { value: 1 }, 'okay if deep strict equal')
})

You can run this unit test yourself to see the output from the various code sections of the readme.

git clone git@github.com:bigeasy/addendum.git
cd addendum
npm install --no-package-lock --no-save
node test/readme.t.js

Overview

okay('TODO')

Project Purpose and Status

This living README.md is a template, but the usage of Addendum is not as interesting as Addendum itself. It's an example of how to build an application with the Paxos-backed atomic log Compassion. Read through the annotated Docco for an understanding of message ordering and map/reduce.

Proof-of-concept implementation of etcd v2 API.

Development

Some of the tests test against both etcd and Addendum if there is a test/etcd.config.json file that contains an object with a single ETCD_HOST_IP property. This assumes that etcd is running on its default port.

{
    "ETCD_HOST_IP": "10.0.0.32"
}