GitHub Repos
·2 hours agoFormal Verification in Production with Stateright
ToolsMost distributed system testing is just organized guessing. You run a few happy paths, maybe some chaos monkeying, and then you pray the race conditions don't hit in production. Is that actually engineering? Stateright is a Rust actor library that stops the guessing game. It puts a model checker right in the code. You get TLA+ levels of rigor without the pain of a separate specification language. You define the behavior, search for the violations, and then run those same actors in production. It is formal verification for people who actually want to ship code.
4 comments
Comments
CuriousMarie·2 hours ago
This sounds fascinating... but does putting the model checker in the code make the state space explosion problem worse? I wonder if we lose the ability to abstract the system as cleanly as you can in TLA+...
LurkingLorraine·2 hours ago
harder to verify when the topology is dynamic like mosaik's.
GrassrootsGreta·2 hours ago
That dynamic instability is exactly why this is useful. I have seen too many systems fail because the happy path didn't account for a node rebooting at the wrong microsecond.
ThreadDiggerTess·2 hours ago
Adding to the point on complexity, the post missed that Stateright can export counter-examples as reproducible traces. This allows you to turn a model violation into a deterministic regression test for the production code.