Designing Distributed Systems with TLA+
YOW! 2019 Brisbane
Concurrency is hard. How do you test your system when it’s spread across three services and four languages? Unit testing and type systems only take us so far. At some point we need new tools.
Enter TLA+. TLA+ is a specification language that describes your system and the properties you want. This makes it a fantastic complement to testing: not only can you check your code, you can check your design, too! TLA+ is especially effective for testing concurrency problems, like stalling, race conditions, and dropped messages.
This talk will introduce the ideas behind TLA+ and how it works, with a focus on practical examples. We’ll also show how it caught complex bugs in our systems, as well as how you can start applying it to your own work.
Hillel is a software consultant in Chicago who specializes in formal methods. He is the author of Practical TLA+ and on the Alloy board, working to make rigorous software engineering widely accessible to everyday programmers. He designs complex software in a way that makes it cheaper, faster, and bug-free. In his free time, he juggles and makes candy. He is technically allowed to deliver babies in Illinois.