Maelstrom Versions Save

A workbench for writing toy implementations of distributed systems.

v0.2.3

1 year ago

Just a few small polishing touches following the release of Gossip Glomers. A few things for bash script portability and ease-of-use, added documentation, and a sort-of-bugfix to seq-kv that makes it easier for people to bash their way to recency without having to Figure Out The Sequential Consistency Trick.

Full Changelog: https://github.com/jepsen-io/maelstrom/compare/v0.2.2...v0.2.3

v0.2.2

1 year ago

API Changes

  • None

Bugfixes

  • The error registry now works in AOT-compiled settings
  • The Kafka workload now detects and handles RPC errors

New Features

  • A unique-ids workload which asks nodes to generate unique identifiers
  • A kafka workload which verifies Kafka-style totally ordered logs
  • A txn-rw-register workload which checks transactions of reads and writes on registers
  • An --availability total checker, which verifies that every operation on a non-faulty node succeeds

New Demos

  • A generic Go node
  • Clojure lin-kv-backed Kafka
  • Clojure transactional KV store based on last-write-wins lamport clocks and the HAT paper
  • Java demo for echo, broadcast, CRDTs, txn-list-append
  • JS demos for echo, gossip, g-set, pn-counter, single and multi-key txn-list-append

Minor Changes

  • Jepsen 0.3.1
  • Tesser 1.0.6
  • Schema 1.4.1
  • Filled in some docs and adjusted formatting

v0.2.1

2 years ago

0.2.0

3 years ago

Generalizes Maelstrom from just a Raft test to several workloads, including linearizable key-value stores, transactions, CRDT sets and counters, and broadcast.

0.1.0

7 years ago

Initial release