This repository contains my Rust implementations of distributed systems challenges from the excellent Fly.io Distributed Systems Series, tested using Jepsen's Maelstrom framework.
The goal of this project is to learn core distributed systems concepts like message passing, broadcast, causal consistency, and fault tolerance by building small, verifiable nodes that pass Maelstrom's rigorous tests.
- ✅ Minimal, modular Rust implementations
- ✅ Detailed comments to explain distributed systems behavior
- ✅ JSON message parsing using
serde
Challenge | Description | Status |
---|---|---|
echo |
Echoes back the input message | ✅ Completed |
unique-ids |
Generates unique IDs on request | ✅ Completed |
broadcast |
Broadcasts messages across the cluster | ✅ Completed |
grow-only |
Implements a stateless grow-only counter | 🔄 In Progress |
cd challenges/echo
maelstrom test -w echo --bin target/debug/echo --nodes n1 --time-limit 10 --log-stderr
📦 Crates Used
[serde / serde_json] - For parsing message payloads
Distributed systems are hard, but test harnesses like Maelstrom make it possible to experiment safely. This project is both a personal learning journey and a resource for others learning Rust and distributed systems.
If you're working on similar projects or want to collaborate, feel free to reach out on LinkedIn or open an issue!
MIT License. See LICENSE for details.