See the following series of posts:
- Introduction to simulation testing;
- Using Maelstrom to test distributed systems;
- Sketching how to simulation test distributed systems;
- The main test loop of simulation testing;
- Draft: Using "workloads" to test distributed systems;
- Draft: A domain-specific language for simulation testing distributed systems.
- Dealing with the notion of time when simulating distributed systems;
- Draft: Introducing faults to test resilience of a distributed system
- Draft: Extending the domain-specific language with synchronous RPCs
- Draft: Domain-specific debugger
- Draft: Optimisation: pipelining parallelism
- Draft: Optimisation: running simulations in parallel
See RUNNING.md for details on how to run the tests.