simulation
simulation copied to clipboard
Framework for simulating distributed applications
Are maintainers still interested in this project? Or what are the main blockers?
Once a simulation framework exists, then next question is what to do with it. FoundationDB coupled the randomized fault injection with specification based testing to obtain a high level of...
Given a full simulation framework with random fault injection, it's still difficult/unlikely to recreate dangerous situations in the system under test. For example, given random packet/network failures, what's the chance...
In the [StrangeLoop FoundationDB](https://www.youtube.com/watch?v=4fFDFbi3toc) talk, Will Wilson mentions the need for re-running simulations with the same deterministic seed and comparing the execution in order to detect sources of nondeterminism which...
#4 Brought in initial support for Tonic, but it is incomplete and there are several issues which makes it difficult to use. 1. @LucioFranco mentioned that we should provide our...
Related to #5, it's desirable that Simulation can test errors which occur due to task execution ordering. Currently, this can be done by adding a random `Delay` to each spawned...
Many distributed applications rely on DNS for service discovery. Simulation should support simulation-wide deterministic DNS-like name resolution. Faults should be introduced in DNS resolution too, such as stale DNS names...
It's desirable to have the ability to check the exact state a simulation is in. This could be exposed as an epoch which is advanced on each task poll. This...
Quite a few interesting libraries use [Hyper](https://github.com/hyperium/hyper) as a building block for HTTP clients and servers. Notably, [Tonic](https://github.com/hyperium/tonic) seems suited for building the types of applications which Simulation could help...