Practical TLA+
hillelwayne.com
hillelwayne.com
Can any mortals who've used TLA+ discuss their motivation for using it and the impact it had on their project? I imagine you'd have had to work in a technology-driven environment to be able to justify it to management since formal verification isn't even in the vocabulary of most ordinary development shops.
https://medium.com/espark-engineering-blog/formal-methods-in...
* A few different groups verified business ETLs with it, finding corner cases which would lose or corrupt data. Similarly, I a lot of use for deployment procedures.
* A lot of people are using it for testing optimizations: write a TLA+ spec of your system, write a spec of the optimizations, and check that they have the same behavior.
* Finding bugs in microservices. I get a _ton_ of emails about this.
* Lots of specific domain problems: trading algorithms, robotics, etc.
The main benefit of TLA+ (and formal specification in general) is that it gives you a way of both writing a precise design of your system and checking the design itself for bugs. That's something so rare in mainstream programming that many people don't even know it's possible. That's why I want to make this stuff more accessible.
Does that answer your question?
Anyway, thank you for putting this out there. I took a look at your first couple of chapters on Safari and your treatment of the subject is much more approachable to me than the wall of math I encountered in Leslie Lamport's stuff.