A series of distributed systems challenges brought to you by Fly.io.
Examples:
# jepsen-io/maelstrom must be installed and `MAELSTROM_PATH` env var must be set to point to it
make run-1 # run specific challenges. see Makefile
make run-2
# ...
make run-6c
Relevant reading:
- Kyle Kingsbury: An Introduction to Distributed Systems (aphyr/distsys-class)
- Martin Fowler: Gossip Dissemination
- Wikipedia: Conflict-free replicated data type > G-Counter (Grow-only Counter)
- Wikipedia: Version vector
- Tyler Treat: Building a Distributed Log from Scratch, Part 2: Data Replication
- Wikipedia: Chord
- Wikipedia: Consistent Hashing
- Jepsen: Consistency Models
- Wikipedia: Eventual consistency
Long time fan of Jepsen and Aphyr's writing so I loved this. Maelstrom is awesome 🌀