Building confidence in concurrent code with a model checker
summary
Demonstrates using TLA+ / TLC to model-check concurrency: a count-to-three model reveals a deadlock reached until a loop (stuttering) and weak fairness are added; a producer/consumer model shows one-producer/one-consumer passes but two-producer/two-consumer fails (the model explores ~38 interleavings); a zero‑downtime deployment model is built with server-state maps and a load balancer and evolves through counterexamples to a working design. Models are compact (≈50 lines) and the checker gives concrete failing traces to guide fixes.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:04Why focus on concurrency
- 3:57Model checking and TLA Plus
- 9:57Confidence in concurrency
- 15:12TLA Plus syntax and concepts
- 22:16Model counting to three
- 29:37Temporal properties and fairness
- 38:46Producer-consumer basics
- 46:49Multiple producer-consumer
- 53:08Zero downtime deployment
- 1:03:17Summary
related talks
01h 04mBuilding confidence in concurrent code with a model checker
22mConcurrency Models Demystified
38mAccidentally Concurrent
49mThinking in a Highly Concurrent, Mostly-functional Language
42mHistory of Concurrency
55mBehavioral Modeling in HW/SW Co-design Using C++ Coroutines
40mDistributed, Eventually Consistent Computations
01h 04mA Pattern Language for Expressing Concurrency in Cpp
