Distributed Systems Playground Open the Playground

Questions, related tools and references#

Frequently asked questions#

Do I need to install anything? No. Open the live demo or the index.html file. Node.js is only needed to run the tests or rebuild the page.

Does it work offline? Yes, once the file is on your machine. Without a network connection the page falls back to system fonts.

Why a custom pseudocode instead of JavaScript? Because the goal is to run the algorithms as they appear in books and papers. Upon keeps the event-driven structure, the pattern matching and the set notation, and the checker can relate the code to the timing model, which a general-purpose language could not do.

Is a result from the playground a proof? No. A run shows one execution. It can reveal a bug, and it can build confidence, but only a proof or an exhaustive model checker can show that an algorithm is correct.

Can I use it in my course? Yes. The project is MIT-licensed. Scenarios can be distributed as JSON files or links, and results are reproducible from the seed.

ToolFocus
TLA+specifying systems and model checking all their behaviors
Maelstromtesting real implementations of distributed protocols against simulated networks
DSLabsassignments in Java with model checking and a visual debugger
ShiVizdrawing space-time diagrams from logs of real systems
DistAlgoa Python-based language for writing and running distributed algorithms

Distributed Systems Playground sits next to these tools rather than replacing them. It targets the first contact with an algorithm: textbook notation, zero setup, a visual execution, and explicit control over the gap between the assumed and the actual timing model.

References#

Generated from docs/faq.md. Released under the MIT License.