The challenges are built on top of a platform called Maelstrom, which in turn, is built on Jepsen. This platform lets you build out a "node" in your distributed system and Maelstrom will handle the routing of messages between the those nodes. This lets Maelstrom inject failures and perform verification checks based on the consistency guarantees required by each challenge.
It's no secret that distributed systems are infuriating and difficult. Even the best developers in the world can be brought to their knees in the face of cluster failures.
Sr. No. | Name | Status |
---|---|---|
1 | Echo | 🌟 |
2 | Unique ID Generation | 🌟 |
3a | Single-Node Broadcast | 🌟 |
3b | Multi-Node Broadcast | 🌟 |
3c | Fault Tolerant Broadcast | 🌟 |
3d | Efficient Broadcast, Part I | 🌟 |
3e | Efficient Broadcast, Part II | 🌟 |
4 | Grow-Only Counter | 🌟 |
5a | Single-Node Kafka-Style Log | |
5b | Multi-Node Kafka-Style Log | |
5c | Efficient Kafka-Style Log | |
6a | Single-Node, Totally-Available Transactions | |
6b | Totally-Available, Read Uncommitted Transactions | |
6c | Totally-Available, Read Committed Transactions |