├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .istanbul.yml ├── .jshintrc ├── .travis.yml ├── LICENSE ├── README.md ├── lib ├── address.js ├── client.js ├── command-queue.js ├── commands.js ├── db.js ├── default-options.js ├── incoming-dispatcher.js ├── iterator.js ├── leveldown.js ├── log.js ├── network │ ├── active │ │ ├── errors.js │ │ ├── index.js │ │ ├── network.js │ │ ├── peer.js │ │ └── reconnect.js │ ├── index.js │ ├── network-node.js │ └── passive │ │ ├── index.js │ │ ├── network.js │ │ └── server.js ├── node.js ├── peer-leader.js ├── rpc.js ├── states │ ├── base.js │ ├── candidate.js │ ├── follower.js │ ├── index.js │ ├── leader.js │ └── weakened.js └── utils │ ├── batch-transform-stream.js │ ├── clear-db.js │ └── not-leader-error.js ├── package.json ├── skiff-logo.png ├── skiff.js └── test ├── active-network.js ├── election.js ├── incoming-dispatcher.js ├── leveldown.js ├── levelup.js ├── log-compaction.js ├── log-replication-catchup.js ├── log-replication.js ├── passive-network.js ├── persistence.js ├── remote-commands.js ├── resilience ├── resilience-chaos-disk.js ├── resilience-chaos-memory.js ├── resilience-order-disk.js ├── resilience-order-memory.js └── setup │ ├── client.js │ ├── index.js │ ├── node.js │ └── server.js └── weakening.js /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/.gitignore -------------------------------------------------------------------------------- /.istanbul.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/.istanbul.yml -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/.jshintrc -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/README.md -------------------------------------------------------------------------------- /lib/address.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/address.js -------------------------------------------------------------------------------- /lib/client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/client.js -------------------------------------------------------------------------------- /lib/command-queue.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/command-queue.js -------------------------------------------------------------------------------- /lib/commands.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/commands.js -------------------------------------------------------------------------------- /lib/db.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/db.js -------------------------------------------------------------------------------- /lib/default-options.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/default-options.js -------------------------------------------------------------------------------- /lib/incoming-dispatcher.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/incoming-dispatcher.js -------------------------------------------------------------------------------- /lib/iterator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/iterator.js -------------------------------------------------------------------------------- /lib/leveldown.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/leveldown.js -------------------------------------------------------------------------------- /lib/log.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/log.js -------------------------------------------------------------------------------- /lib/network/active/errors.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | exports.OK_ERRORS = [ 4 | 'ECONNREFUSED' 5 | ] 6 | -------------------------------------------------------------------------------- /lib/network/active/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/active/index.js -------------------------------------------------------------------------------- /lib/network/active/network.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/active/network.js -------------------------------------------------------------------------------- /lib/network/active/peer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/active/peer.js -------------------------------------------------------------------------------- /lib/network/active/reconnect.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/active/reconnect.js -------------------------------------------------------------------------------- /lib/network/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/index.js -------------------------------------------------------------------------------- /lib/network/network-node.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/network-node.js -------------------------------------------------------------------------------- /lib/network/passive/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/passive/index.js -------------------------------------------------------------------------------- /lib/network/passive/network.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/passive/network.js -------------------------------------------------------------------------------- /lib/network/passive/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/network/passive/server.js -------------------------------------------------------------------------------- /lib/node.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/node.js -------------------------------------------------------------------------------- /lib/peer-leader.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/peer-leader.js -------------------------------------------------------------------------------- /lib/rpc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/rpc.js -------------------------------------------------------------------------------- /lib/states/base.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/states/base.js -------------------------------------------------------------------------------- /lib/states/candidate.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/states/candidate.js -------------------------------------------------------------------------------- /lib/states/follower.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/states/follower.js -------------------------------------------------------------------------------- /lib/states/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/states/index.js -------------------------------------------------------------------------------- /lib/states/leader.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/states/leader.js -------------------------------------------------------------------------------- /lib/states/weakened.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/states/weakened.js -------------------------------------------------------------------------------- /lib/utils/batch-transform-stream.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/utils/batch-transform-stream.js -------------------------------------------------------------------------------- /lib/utils/clear-db.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/utils/clear-db.js -------------------------------------------------------------------------------- /lib/utils/not-leader-error.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/lib/utils/not-leader-error.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/package.json -------------------------------------------------------------------------------- /skiff-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/skiff-logo.png -------------------------------------------------------------------------------- /skiff.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/skiff.js -------------------------------------------------------------------------------- /test/active-network.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/active-network.js -------------------------------------------------------------------------------- /test/election.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/election.js -------------------------------------------------------------------------------- /test/incoming-dispatcher.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/incoming-dispatcher.js -------------------------------------------------------------------------------- /test/leveldown.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/leveldown.js -------------------------------------------------------------------------------- /test/levelup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/levelup.js -------------------------------------------------------------------------------- /test/log-compaction.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/log-compaction.js -------------------------------------------------------------------------------- /test/log-replication-catchup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/log-replication-catchup.js -------------------------------------------------------------------------------- /test/log-replication.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/log-replication.js -------------------------------------------------------------------------------- /test/passive-network.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/passive-network.js -------------------------------------------------------------------------------- /test/persistence.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/persistence.js -------------------------------------------------------------------------------- /test/remote-commands.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/remote-commands.js -------------------------------------------------------------------------------- /test/resilience/resilience-chaos-disk.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/resilience/resilience-chaos-disk.js -------------------------------------------------------------------------------- /test/resilience/resilience-chaos-memory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/resilience/resilience-chaos-memory.js -------------------------------------------------------------------------------- /test/resilience/resilience-order-disk.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/resilience/resilience-order-disk.js -------------------------------------------------------------------------------- /test/resilience/resilience-order-memory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/resilience/resilience-order-memory.js -------------------------------------------------------------------------------- /test/resilience/setup/client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/resilience/setup/client.js -------------------------------------------------------------------------------- /test/resilience/setup/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/resilience/setup/index.js -------------------------------------------------------------------------------- /test/resilience/setup/node.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/resilience/setup/node.js -------------------------------------------------------------------------------- /test/resilience/setup/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/resilience/setup/server.js -------------------------------------------------------------------------------- /test/weakening.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yldio/skiff/HEAD/test/weakening.js --------------------------------------------------------------------------------