├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── demo ├── c++ │ ├── Makefile │ ├── README.md │ ├── echo.cpp │ ├── maelstrom.cpp │ └── maelstrom.h ├── clojure │ ├── echo.clj │ ├── flake_ids.clj │ ├── gcounter.clj │ ├── gossip.clj │ ├── gset.clj │ ├── kafka.clj │ ├── kafka_single_node.clj │ ├── multi_key_txn.clj │ ├── node.clj │ ├── single_key_txn.clj │ ├── txn_rw_register_hat.clj │ └── txn_rw_register_no_isolation.clj ├── go │ ├── README.md │ ├── cmd │ │ └── maelstrom-echo │ │ │ └── main.go │ ├── go.mod │ ├── kv.go │ ├── kv_test.go │ ├── node.go │ ├── node_test.go │ ├── rpc_error.go │ └── rpc_error_test.go ├── java │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── broadcast │ ├── build │ ├── g-counter │ ├── g-set │ ├── pom.xml │ ├── server │ ├── src │ │ ├── main │ │ │ └── java │ │ │ │ └── lab │ │ │ │ ├── App.java │ │ │ │ ├── BroadcastServer.java │ │ │ │ ├── CRDT.java │ │ │ │ ├── CRDTServer.java │ │ │ │ ├── EchoServer.java │ │ │ │ ├── Error.java │ │ │ │ ├── GCounter.java │ │ │ │ ├── GCounterServer.java │ │ │ │ ├── GSet.java │ │ │ │ ├── GSetServer.java │ │ │ │ ├── IJson.java │ │ │ │ ├── JsonUtil.java │ │ │ │ ├── Message.java │ │ │ │ ├── Node.java │ │ │ │ └── txnListAppend │ │ │ │ ├── AppendMop.java │ │ │ │ ├── KVStore.java │ │ │ │ ├── Mop.java │ │ │ │ ├── ReadMop.java │ │ │ │ ├── State.java │ │ │ │ ├── Thunk.java │ │ │ │ ├── Txn.java │ │ │ │ └── TxnListAppendServer.java │ │ └── test │ │ │ └── java │ │ │ └── lab │ │ │ └── AppTest.java │ ├── target │ │ └── maven-status │ │ │ └── maven-compiler-plugin │ │ │ └── compile │ │ │ └── default-compile │ │ │ ├── createdFiles.lst │ │ │ └── inputFiles.lst │ └── txn-list-append ├── js │ ├── crdt_gset.js │ ├── crdt_pn_counter.js │ ├── echo.js │ ├── echo_minimal.js │ ├── gossip.js │ ├── multi_key_txn.js │ ├── node.js │ └── single_key_txn.js ├── python │ ├── README.md │ ├── broadcast.py │ ├── echo.py │ ├── maelstrom.py │ └── raft.py ├── ruby │ ├── broadcast.rb │ ├── crdt.rb │ ├── datomic_list_append.rb │ ├── echo.rb │ ├── echo_full.rb │ ├── errors.rb │ ├── g_set.rb │ ├── lin_kv_proxy.rb │ ├── node.rb │ ├── pn_counter.rb │ ├── promise.rb │ └── raft.rb └── rust │ ├── Cargo.lock │ ├── Cargo.toml │ ├── README.md │ └── src │ └── bin │ ├── broadcast.rs │ ├── echo.rs │ ├── g_set.rs │ └── lin_kv.rs ├── doc ├── 01-getting-ready │ └── index.md ├── 02-echo │ └── index.md ├── 03-broadcast │ ├── 01-broadcast.md │ ├── 02-performance.md │ ├── broadcast-storm.png │ ├── grid.png │ ├── index.md │ ├── line.png │ └── no-comms.png ├── 04-crdts │ ├── 01-g-set.md │ ├── 02-counters.md │ ├── index.md │ └── latency-partitions.png ├── 05-datomic │ ├── 01-single-node.md │ ├── 02-shared-state.md │ ├── 03-persistent-trees.md │ ├── 04-optimization.md │ ├── g-single-realtime.svg │ ├── g1-realtime.svg │ ├── index.md │ ├── interleaved-keys.png │ ├── linear-slowdown.png │ ├── lww-high-latency.png │ ├── missing-value.png │ ├── not-concurrent.png │ ├── thunk-latency.png │ └── thunk-map.png ├── 06-raft │ ├── 01-key-value.md │ ├── 02-leader-election.md │ ├── 03-replication.md │ ├── 04-committing.md │ ├── final.png │ ├── index.md │ ├── lots-of-failures.png │ ├── no-log-logging.png │ ├── proxy.png │ └── single-node-anomaly.svg ├── promo.png ├── protocol.md ├── results.md ├── services.md └── workloads.md ├── package.sh ├── pkg └── maelstrom ├── project.clj ├── resources ├── errors.edn ├── protocol-intro.md └── workloads-intro.md ├── src └── maelstrom │ ├── checker.clj │ ├── client.clj │ ├── core.clj │ ├── db.clj │ ├── doc.clj │ ├── nemesis.clj │ ├── net.clj │ ├── net │ ├── checker.clj │ ├── journal.clj │ ├── message.clj │ └── viz.clj │ ├── process.clj │ ├── service.clj │ ├── util.clj │ └── workload │ ├── broadcast.clj │ ├── echo.clj │ ├── g_counter.clj │ ├── g_set.clj │ ├── kafka.clj │ ├── lin_kv.clj │ ├── pn_counter.clj │ ├── txn_list_append.clj │ ├── txn_rw_register.clj │ └── unique_ids.clj └── test └── maelstrom ├── core_test.clj ├── service_test.clj └── workload └── pn_counter_test.clj /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/README.md -------------------------------------------------------------------------------- /demo/c++/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/c++/Makefile -------------------------------------------------------------------------------- /demo/c++/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/c++/README.md -------------------------------------------------------------------------------- /demo/c++/echo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/c++/echo.cpp -------------------------------------------------------------------------------- /demo/c++/maelstrom.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/c++/maelstrom.cpp -------------------------------------------------------------------------------- /demo/c++/maelstrom.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/c++/maelstrom.h -------------------------------------------------------------------------------- /demo/clojure/echo.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/echo.clj -------------------------------------------------------------------------------- /demo/clojure/flake_ids.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/flake_ids.clj -------------------------------------------------------------------------------- /demo/clojure/gcounter.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/gcounter.clj -------------------------------------------------------------------------------- /demo/clojure/gossip.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/gossip.clj -------------------------------------------------------------------------------- /demo/clojure/gset.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/gset.clj -------------------------------------------------------------------------------- /demo/clojure/kafka.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/kafka.clj -------------------------------------------------------------------------------- /demo/clojure/kafka_single_node.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/kafka_single_node.clj -------------------------------------------------------------------------------- /demo/clojure/multi_key_txn.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/multi_key_txn.clj -------------------------------------------------------------------------------- /demo/clojure/node.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/node.clj -------------------------------------------------------------------------------- /demo/clojure/single_key_txn.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/single_key_txn.clj -------------------------------------------------------------------------------- /demo/clojure/txn_rw_register_hat.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/txn_rw_register_hat.clj -------------------------------------------------------------------------------- /demo/clojure/txn_rw_register_no_isolation.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/clojure/txn_rw_register_no_isolation.clj -------------------------------------------------------------------------------- /demo/go/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/go/README.md -------------------------------------------------------------------------------- /demo/go/cmd/maelstrom-echo/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/go/cmd/maelstrom-echo/main.go -------------------------------------------------------------------------------- /demo/go/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/jepsen-io/maelstrom/demo/go 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /demo/go/kv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/go/kv.go -------------------------------------------------------------------------------- /demo/go/kv_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/go/kv_test.go -------------------------------------------------------------------------------- /demo/go/node.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/go/node.go -------------------------------------------------------------------------------- /demo/go/node_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/go/node_test.go -------------------------------------------------------------------------------- /demo/go/rpc_error.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/go/rpc_error.go -------------------------------------------------------------------------------- /demo/go/rpc_error_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/go/rpc_error_test.go -------------------------------------------------------------------------------- /demo/java/.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/.vscode/settings.json -------------------------------------------------------------------------------- /demo/java/.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/.vscode/tasks.json -------------------------------------------------------------------------------- /demo/java/broadcast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/broadcast -------------------------------------------------------------------------------- /demo/java/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mvn clean compile assembly:single 4 | -------------------------------------------------------------------------------- /demo/java/g-counter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/g-counter -------------------------------------------------------------------------------- /demo/java/g-set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/g-set -------------------------------------------------------------------------------- /demo/java/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/pom.xml -------------------------------------------------------------------------------- /demo/java/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/server -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/App.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/BroadcastServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/BroadcastServer.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/CRDT.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/CRDT.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/CRDTServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/CRDTServer.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/EchoServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/EchoServer.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/Error.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/Error.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/GCounter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/GCounter.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/GCounterServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/GCounterServer.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/GSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/GSet.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/GSetServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/GSetServer.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/IJson.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/IJson.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/JsonUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/JsonUtil.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/Message.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/Message.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/Node.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/Node.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/txnListAppend/AppendMop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/txnListAppend/AppendMop.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/txnListAppend/KVStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/txnListAppend/KVStore.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/txnListAppend/Mop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/txnListAppend/Mop.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/txnListAppend/ReadMop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/txnListAppend/ReadMop.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/txnListAppend/State.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/txnListAppend/State.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/txnListAppend/Thunk.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/txnListAppend/Thunk.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/txnListAppend/Txn.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/txnListAppend/Txn.java -------------------------------------------------------------------------------- /demo/java/src/main/java/lab/txnListAppend/TxnListAppendServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/main/java/lab/txnListAppend/TxnListAppendServer.java -------------------------------------------------------------------------------- /demo/java/src/test/java/lab/AppTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/src/test/java/lab/AppTest.java -------------------------------------------------------------------------------- /demo/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst -------------------------------------------------------------------------------- /demo/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst -------------------------------------------------------------------------------- /demo/java/txn-list-append: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/java/txn-list-append -------------------------------------------------------------------------------- /demo/js/crdt_gset.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/js/crdt_gset.js -------------------------------------------------------------------------------- /demo/js/crdt_pn_counter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/js/crdt_pn_counter.js -------------------------------------------------------------------------------- /demo/js/echo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/js/echo.js -------------------------------------------------------------------------------- /demo/js/echo_minimal.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/js/echo_minimal.js -------------------------------------------------------------------------------- /demo/js/gossip.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/js/gossip.js -------------------------------------------------------------------------------- /demo/js/multi_key_txn.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/js/multi_key_txn.js -------------------------------------------------------------------------------- /demo/js/node.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/js/node.js -------------------------------------------------------------------------------- /demo/js/single_key_txn.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/js/single_key_txn.js -------------------------------------------------------------------------------- /demo/python/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/python/README.md -------------------------------------------------------------------------------- /demo/python/broadcast.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/python/broadcast.py -------------------------------------------------------------------------------- /demo/python/echo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/python/echo.py -------------------------------------------------------------------------------- /demo/python/maelstrom.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/python/maelstrom.py -------------------------------------------------------------------------------- /demo/python/raft.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/python/raft.py -------------------------------------------------------------------------------- /demo/ruby/broadcast.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/broadcast.rb -------------------------------------------------------------------------------- /demo/ruby/crdt.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/crdt.rb -------------------------------------------------------------------------------- /demo/ruby/datomic_list_append.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/datomic_list_append.rb -------------------------------------------------------------------------------- /demo/ruby/echo.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/echo.rb -------------------------------------------------------------------------------- /demo/ruby/echo_full.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/echo_full.rb -------------------------------------------------------------------------------- /demo/ruby/errors.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/errors.rb -------------------------------------------------------------------------------- /demo/ruby/g_set.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/g_set.rb -------------------------------------------------------------------------------- /demo/ruby/lin_kv_proxy.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/lin_kv_proxy.rb -------------------------------------------------------------------------------- /demo/ruby/node.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/node.rb -------------------------------------------------------------------------------- /demo/ruby/pn_counter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/pn_counter.rb -------------------------------------------------------------------------------- /demo/ruby/promise.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/promise.rb -------------------------------------------------------------------------------- /demo/ruby/raft.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/ruby/raft.rb -------------------------------------------------------------------------------- /demo/rust/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/rust/Cargo.lock -------------------------------------------------------------------------------- /demo/rust/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/rust/Cargo.toml -------------------------------------------------------------------------------- /demo/rust/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/rust/README.md -------------------------------------------------------------------------------- /demo/rust/src/bin/broadcast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/rust/src/bin/broadcast.rs -------------------------------------------------------------------------------- /demo/rust/src/bin/echo.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/rust/src/bin/echo.rs -------------------------------------------------------------------------------- /demo/rust/src/bin/g_set.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/rust/src/bin/g_set.rs -------------------------------------------------------------------------------- /demo/rust/src/bin/lin_kv.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/demo/rust/src/bin/lin_kv.rs -------------------------------------------------------------------------------- /doc/01-getting-ready/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/01-getting-ready/index.md -------------------------------------------------------------------------------- /doc/02-echo/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/02-echo/index.md -------------------------------------------------------------------------------- /doc/03-broadcast/01-broadcast.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/03-broadcast/01-broadcast.md -------------------------------------------------------------------------------- /doc/03-broadcast/02-performance.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/03-broadcast/02-performance.md -------------------------------------------------------------------------------- /doc/03-broadcast/broadcast-storm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/03-broadcast/broadcast-storm.png -------------------------------------------------------------------------------- /doc/03-broadcast/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/03-broadcast/grid.png -------------------------------------------------------------------------------- /doc/03-broadcast/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/03-broadcast/index.md -------------------------------------------------------------------------------- /doc/03-broadcast/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/03-broadcast/line.png -------------------------------------------------------------------------------- /doc/03-broadcast/no-comms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/03-broadcast/no-comms.png -------------------------------------------------------------------------------- /doc/04-crdts/01-g-set.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/04-crdts/01-g-set.md -------------------------------------------------------------------------------- /doc/04-crdts/02-counters.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/04-crdts/02-counters.md -------------------------------------------------------------------------------- /doc/04-crdts/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/04-crdts/index.md -------------------------------------------------------------------------------- /doc/04-crdts/latency-partitions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/04-crdts/latency-partitions.png -------------------------------------------------------------------------------- /doc/05-datomic/01-single-node.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/01-single-node.md -------------------------------------------------------------------------------- /doc/05-datomic/02-shared-state.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/02-shared-state.md -------------------------------------------------------------------------------- /doc/05-datomic/03-persistent-trees.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/03-persistent-trees.md -------------------------------------------------------------------------------- /doc/05-datomic/04-optimization.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/04-optimization.md -------------------------------------------------------------------------------- /doc/05-datomic/g-single-realtime.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/g-single-realtime.svg -------------------------------------------------------------------------------- /doc/05-datomic/g1-realtime.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/g1-realtime.svg -------------------------------------------------------------------------------- /doc/05-datomic/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/index.md -------------------------------------------------------------------------------- /doc/05-datomic/interleaved-keys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/interleaved-keys.png -------------------------------------------------------------------------------- /doc/05-datomic/linear-slowdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/linear-slowdown.png -------------------------------------------------------------------------------- /doc/05-datomic/lww-high-latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/lww-high-latency.png -------------------------------------------------------------------------------- /doc/05-datomic/missing-value.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/missing-value.png -------------------------------------------------------------------------------- /doc/05-datomic/not-concurrent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/not-concurrent.png -------------------------------------------------------------------------------- /doc/05-datomic/thunk-latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/thunk-latency.png -------------------------------------------------------------------------------- /doc/05-datomic/thunk-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/05-datomic/thunk-map.png -------------------------------------------------------------------------------- /doc/06-raft/01-key-value.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/01-key-value.md -------------------------------------------------------------------------------- /doc/06-raft/02-leader-election.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/02-leader-election.md -------------------------------------------------------------------------------- /doc/06-raft/03-replication.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/03-replication.md -------------------------------------------------------------------------------- /doc/06-raft/04-committing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/04-committing.md -------------------------------------------------------------------------------- /doc/06-raft/final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/final.png -------------------------------------------------------------------------------- /doc/06-raft/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/index.md -------------------------------------------------------------------------------- /doc/06-raft/lots-of-failures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/lots-of-failures.png -------------------------------------------------------------------------------- /doc/06-raft/no-log-logging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/no-log-logging.png -------------------------------------------------------------------------------- /doc/06-raft/proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/proxy.png -------------------------------------------------------------------------------- /doc/06-raft/single-node-anomaly.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/06-raft/single-node-anomaly.svg -------------------------------------------------------------------------------- /doc/promo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/promo.png -------------------------------------------------------------------------------- /doc/protocol.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/protocol.md -------------------------------------------------------------------------------- /doc/results.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/results.md -------------------------------------------------------------------------------- /doc/services.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/services.md -------------------------------------------------------------------------------- /doc/workloads.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/doc/workloads.md -------------------------------------------------------------------------------- /package.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/package.sh -------------------------------------------------------------------------------- /pkg/maelstrom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/pkg/maelstrom -------------------------------------------------------------------------------- /project.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/project.clj -------------------------------------------------------------------------------- /resources/errors.edn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/resources/errors.edn -------------------------------------------------------------------------------- /resources/protocol-intro.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/resources/protocol-intro.md -------------------------------------------------------------------------------- /resources/workloads-intro.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/resources/workloads-intro.md -------------------------------------------------------------------------------- /src/maelstrom/checker.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/checker.clj -------------------------------------------------------------------------------- /src/maelstrom/client.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/client.clj -------------------------------------------------------------------------------- /src/maelstrom/core.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/core.clj -------------------------------------------------------------------------------- /src/maelstrom/db.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/db.clj -------------------------------------------------------------------------------- /src/maelstrom/doc.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/doc.clj -------------------------------------------------------------------------------- /src/maelstrom/nemesis.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/nemesis.clj -------------------------------------------------------------------------------- /src/maelstrom/net.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/net.clj -------------------------------------------------------------------------------- /src/maelstrom/net/checker.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/net/checker.clj -------------------------------------------------------------------------------- /src/maelstrom/net/journal.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/net/journal.clj -------------------------------------------------------------------------------- /src/maelstrom/net/message.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/net/message.clj -------------------------------------------------------------------------------- /src/maelstrom/net/viz.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/net/viz.clj -------------------------------------------------------------------------------- /src/maelstrom/process.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/process.clj -------------------------------------------------------------------------------- /src/maelstrom/service.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/service.clj -------------------------------------------------------------------------------- /src/maelstrom/util.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/util.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/broadcast.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/broadcast.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/echo.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/echo.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/g_counter.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/g_counter.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/g_set.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/g_set.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/kafka.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/kafka.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/lin_kv.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/lin_kv.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/pn_counter.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/pn_counter.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/txn_list_append.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/txn_list_append.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/txn_rw_register.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/txn_rw_register.clj -------------------------------------------------------------------------------- /src/maelstrom/workload/unique_ids.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/src/maelstrom/workload/unique_ids.clj -------------------------------------------------------------------------------- /test/maelstrom/core_test.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/test/maelstrom/core_test.clj -------------------------------------------------------------------------------- /test/maelstrom/service_test.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/test/maelstrom/service_test.clj -------------------------------------------------------------------------------- /test/maelstrom/workload/pn_counter_test.clj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jepsen-io/maelstrom/HEAD/test/maelstrom/workload/pn_counter_test.clj --------------------------------------------------------------------------------