paper-age
maelstrom
paper-age | maelstrom | |
---|---|---|
5 | 14 | |
379 | 2,802 | |
- | 2.8% | |
8.5 | 5.1 | |
20 days ago | about 1 month ago | |
Rust | Clojure | |
MIT License | Eclipse Public License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
paper-age
maelstrom
- Maelstrom: A workbench for learning distributed systems
-
The Raft Consensus Algorithm
Maelstrom [1], a workbench for learning distributed systems from the creator of Jepsen, includes a simple (model-checked) implementation of Raft and an excellent tutorial on implementing it.
Raft is a simple algorithm, but as others have noted, the original paper includes many correctness details often brushed over in toy implementations. Furthermore, the fallibility of real-world hardware (handling memory/disk corruption and grey failures), the requirements of real-world systems with tight latency SLAs, and a need for things like flexible quorum/dynamic cluster membership make implementing it for production a long and daunting task. The commit history of etcd and hashicorp/raft, likely the two most battle-tested open source implementations of raft that still surface correctness bugs on the regular tell you all you need to know.
The tigerbeetle team talks in detail about the real-world aspects of distributed systems on imperfect hardware/non-abstracted system models, and why they chose viewstamp replication, which predates Paxos but looks more like Raft.
[1]: https://github.com/jepsen-io/maelstrom/
[2]: https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/DE...
-
zio-maelstrom
I've tried to run the echo example and I'me getting some problems. I assume it works as the same example in the maelstrom's getting started ready (https://github.com/jepsen-io/maelstrom/blob/main/doc/01-getting-ready/index.md).
- Ask HN: Projects to do to get better at distributed systems
- Resources about distributed systems in go
- FLiPN-FLaNK Stack for March 6, 2023
-
Gossip Glomers: Fly.io Distributed Systems Challenges
Love it. Thanks for putting this together! The actual challenges here [0].
Though I'm curious: are these different from the chapters in the Maelstrom documentation [1]? There seems to be a bit of overlap anyway.
[0] https://fly.io/dist-sys/
[1] https://github.com/jepsen-io/maelstrom#documentation
What are some alternatives?
rubigo
nosqlbench - The open source, pluggable, nosql benchmarking suite.
DeepStream-dGPU-Installation - This repository is helpful for installing DeepStream SDK and it's python bindings in dGPU machine.
kaocha - Full featured next gen Clojure test runner
csv-import - The open-source CSV importer, maintained by @tableflowhq
titanoboa - Titanoboa makes complex workflows easy. It is a low-code workflow orchestration platform for JVM - distributed, highly scalable and fault tolerant.
emplace - 👩❤️💋👩 Synchronize installed packages on multiple machines
bond - spying for tests
ifttt-webhook - Simple async library for triggering IFTTT events using webhooks.
openai-python - The official Python library for the OpenAI API
paperback - Paper backup generator suitable for long-term storage.
unilm - Large-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities