Skip to content
0:00 / 0:00

#tlaplus#pluscal#formalmethods

"Tackling Concurrency Bugs with TLA+" by Hillel Wayne

Strange Loop Conference

88K subscribers • 107 videos on Hallway • Conference channel

YouTube
  • Recommended by 3 people: 3 on Hacker News.
  • A classic. People kept recommending it from 2018 to 2025.
  • Presented by Hillel Wayne, software engineer

Intermediate. Assumes working knowledge.

23K views9 years ago3 recommendations

Systems programmingSoftware designConcurrency and parallelismFormal methods and verification

Hillel Wayne introduces TLAPlus and PlusCal, demonstrating how to write specifications to catch complex concurrency bugs in system designs.

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 Wayne ESPARK LEARNING Hillel is a senior software engineer at eSpark Learning. He enjoys technical writing and is the author of Learn TLA+ (learntla.com). In his free time he juggles and makes chocolates. He _probably_ brought enough for everyone.

Why it's here

3 people recommend this

What people say. Recommended as an excellent, high-level introduction to TLAPlus and PlusCal for finding concurrency bugs in system designs.

ajmurmannon Hacker News • Recommends

On “Modeling Redux with TLA+”

Hillel gave a pretty interesting talk on TLA+ at last year's StrangeLoop: link to this video If you are new to TLA+ and just want to get the basic idea and use cases, I recommend the talk. Edit: I think he also brought home made granola or something. So attending his talks in person has benefits.

bandwitchon Hacker News • Recommends

On “Learn how to design large-scale systems”

I feel TLA+ would be too much to ask in a system interview which is what this site is about. In case anybody is interested, there is a nice talk by Hillel Wayne on youtube ( link to this video ) that provides a high-level overview on what TLA+ is about.

cess11on Hacker News • Recommends

On “The first year of free-threaded Python”

The literature on distributed systems is huge. It depends a lot on your use case what you ought to do. If you're lucky you can avoid shared state, as in no race conditions in either end of your executions. link to this video is fairly concise and gives some recommendations for literature and techniques, obviously making an effort in promoting PlusCal/TLA+ along the way but showcases how even apparently simple algorithms can be problematic as well as how deep analysis has to go to get you a guarantee that the execution will be bug free.

programming-talkscurated list on GitHubMentions

Under “Debugging”

Tackling Concurrency Bugs with TLA+ 00:30:05 by **Hillel Wayne** (2017)

hwayneon Hacker News • Mentions

On “Ask HN: Anyone ever use TLA+ on a Webapp”

I've used it for caching, batch processing, and concurrent web apps, and it's been a huge help. I've gone into how I used it in a couple of places: - "Tackling Concurrency Bugs with TLA+" ( link to this video ) - "Formal Methods in Practice" ( link ) I love helping people with this stuff, so ping me if you have any questions!

strangecastson Hacker News • Mentions

On “Learn TLA+ (2018)”

PlusCal uses labels (e.g. "Give:") to designate atomic actions - when you translate it, each labelled section is turned into an atomic action 1. You can start off with a very simple spec with totally atomic transactions, and gradually make it more granular by introducing more labels, as shown in Wayne's Strange Loop presentation 2 1 link 2 link to this video (15:55)