maelstrom
titanoboa
maelstrom | titanoboa | |
---|---|---|
14 | 5 | |
2,792 | 905 | |
2.0% | 0.0% | |
5.1 | 0.0 | |
24 days ago | over 1 year ago | |
Clojure | Clojure | |
Eclipse Public License 1.0 | GNU Affero General Public License v3.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.
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
titanoboa
What are some alternatives?
nosqlbench - The open source, pluggable, nosql benchmarking suite.
temporal - Temporal service
kaocha - Full featured next gen Clojure test runner
secrets.clj - A library designed to generate cryptographically strong random numbers suitable for managing data such as passwords, account authentication, security tokens, and related secrets.
bond - spying for tests
pipedream - Connect APIs, remarkably fast. Free for developers.
openai-python - The official Python library for the OpenAI API
awesome-integration - A curated list of awesome system integration software and resources.
unilm - Large-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities
talent-plan - open source training courses about distributed database and distributed systems
text-generation-webui - A Gradio web UI for Large Language Models. Supports transformers, GPTQ, AWQ, EXL2, llama.cpp (GGUF), Llama models.
csv-import - The open-source CSV importer, maintained by @tableflowhq