Distributed Systems Playground Open the Playground

Documentation#

Distributed Systems Playground is a browser tool for writing distributed algorithms in textbook pseudocode and watching them run on a simulated network. These pages explain how to use it, what it models, and where it simplifies.

The same pages are published as a documentation site with navigation and search. In a copy of the repository, open manual/index.html.

Where to start#

If you want toRead
try it in twenty minutesGetting started
brush up on the theoryConcepts
explore ready-made scenariosExamples
use it in a courseTeaching with the playground
know what the simulator leaves outAssumptions and simplifications

Reference#

PageContent
The interfaceevery panel, control, visual mark and shortcut
The Upon languagesyntax, semantics, built-ins, checks and errors
The module librarylinks and broadcast modules, their guarantees and costs
The timing modelassumed and actual models, distributions, presets, rounds, GST
Faultscrashes, recoveries, link failures, partitions
How the engine worksevent ordering, steps, message handling, determinism
How the project is put togetherthe diagram of the pieces and how they fit
A guided tourseven scenarios in order, each showing one thing the playground is for
Running scenarios outside the browserthe command line tool and the batch runner API
Questions, related tools and referenceswhat it is and is not, how it compares, what to read
Troubleshootingsymptoms, causes, fixes and error messages
Specificationthe design document, grammar and implementation status
Changelogwhat changed in each version

A note on trust#

Every run is one execution of a model. The model is described precisely in Assumptions and simplifications, and the examples in these pages were checked against the engine: the numbers quoted come from real runs with the stated seeds, and the Upon programs are compiled by the test suite. If you find a statement that does not match what the playground does, please open an issue.