
Practical TLA+
by Hillel Wayne · first published 2018
25mentions
15recommended by
20HN commenters
2019–2026first – last mentioned
75% recommend20% neutral5% critical
Why HN recommends it
Approachable, practical introduction to TLA+ and PlusCal for working programmers, with worked examples that show how modeling catches bugs before code is written; suited to people building a first real model.
Summarised by Claude from recommending comments
Affiliate links. As an Amazon Associate I earn from qualifying purchases.

…Leslie teaches courses to engineers in person, he uses these videos. They're effective. (4) Learn TLA+ by Hillel Wayne (https://learntla.com/introduction/) A free online resource for learning TLA+. (5) Practical TLA+ by Hillel Wayne (https://www.apress.com/us/book/9781484238288) I own this book, and it is a great introduction to PlusCal (a pseudocode-type language that transpiles to TLA+) and TLA+ in general. Highly…
on “Building a “Simple” Distributed System – Formal Verification” ↗I've invested a fair amount of time into learning TLA+, have bought Hillel Wayne's book (Practical TLA+), and found his stuff super valuable. However, if I could do it again, I would have started in the following order: - 1. Watch https://www.youtube.com/watch?v=-4Yp3j_jk8Q - 2. Watch all of https://www.youtube.com/watch?v=p54W-XOIEF8&list=PLWAv2Etpa7...…
on “Learn TLA+” ↗…circuit modeling. I can't tell you where to learn about that. I think Hillel Wayne's learntla website is pretty good to get a few more practical examples: https://learntla.com/. I actually thought his Practical TLA+ book was a bit better for that though: https://www.amazon.com/Practical-TLA-Planning-Driven-Develop... Both of those resources are more PlusCal focused. PlusCal is a C/Pascal-like language that compiles…
on “Ask HN: What Are You Working On? (May 2026)” ↗I can recommend Hillel Wayne's book "Practical TLA+". It helped me understand scenarios where TLA+ specifications and the modelling approach would be essential in discovering bugs before writing any code. (Still waiting to put my fledgling TLA+ knowledge…
on “Using TLA+ for fun and profit in the development of ElasticSearch [video]” ↗Practical TLA+ is indeed a great place to start, and Hillel Wayne's writing out formal methods is all worth reading. Lamport's TLA+ book, and "Specifying Systems" are both available online (https://lamport.azurewebsites.net/tla/book.html).…
on “How Amazon Web Services Uses Formal Methods (2015) [pdf]” ↗I've read Hillel Wayne's "Practical TLA+", which is a very good introduction, and watched a couple of talks on it. I also collect case studies of TLA+ usage. I find the concept really a good idea and would love to use it more. My main issue…
on “Ask HN: Do you use TLA+?” ↗Hillel Wayne's "Practical TLA+" book and the TLA+ examples repository (https://github.com/tlaplus/Examples) both contain excellent worked examples ranging from simple algorithms to complex distributed systems.
on “Formal specs as sets of behaviors” ↗Hillel Wayne[1] has written a bunch about TLA+ for lay programmers like me. I've found his blog posts pretty good, I also bought his book Practical TLA+ which I like. He also wrote the free web book Learn TLA+[2]. [1]: https://www.hillelwayne.com/post/using-formal-methods/ [2]: https://learntla.com/introduction/
on “Using TLA+ to Model Cascading Failures” ↗…abstract one. Perhaps looking at examples (which you can find on the subreddit I linked and in the sidebar) will give you a better feel for how TLA+ is used for precisely the goal you have in mind. The Practical TLA+ book[1] (which uses PlusCal) also has good examples. [1]: https://www.apress.com/gp/book/9781484238288
on “TLA+: design, model, document, and verify concurrent systems” ↗You may have seen this blog already, but the author of "Practical TLA+" has a really fascinating blog with some fun toy examples. I'm a fan of this article where they model A Link to the Past with Alloy, to prove that dungeons are "winnable" [0]. The rest of the blog is…
on “TLA+ model checking made symbolic” ↗…ignorance on this), have you considered making this plugin NeoVim specific and doing it in another language you are more comfortable with? EDIT: Also, just realize that you are the person who wrote the Practical TLA+ book...I loved it! Thanks for writing it!
on “Introduction to TLA+ Model Checking in the Command Line” ↗Thanks, Hillel! The TLA+ formulation looks good. I was so happy to get your advice that I bought a copy of Practical TlA+ from Apress. Even if it doesn't help with this particular project, I'm sure it will be useful down the line. Specifying Systems has been my go-to reference alongside Lamport's video tutorial. Thanks…
on “TLA+: design, model, document, and verify concurrent systems” ↗I recommend "Practical TLA+" too; it introduces TLA+ in a more approachable way than other resources. Link to the book: https://www.apress.com/gp/book/9781484238288
on “How Amazon Web Services Uses Formal Methods (2015) [pdf]” ↗…possible, and the limitations of those solutions. For learning Paxos I like this video: https://m.youtube.com/watch?v=JEpsBg0AO6o Implement it yourself in your language of choice. For TLA+ there's the Practical TLA+ textbook or Leslie Lamport's video lecture series: https://lamport.azurewebsites.net/video/videos.html
on “Debugging Distributed Systems” ↗Side note: Just realized who you were. Read through Practical TLA+ recently modeling a few things at work. Incredibly helpful book for working through my first concrete model in practice.
on “My Gripes with Prolog” ↗