Formal Modeling and Analysis of Distributed Systems
summary
P is a state-machine programming language and open-source framework that models distributed components as communicating state machines, attaches runtime monitors as executable specifications, and runs a prioritized, portfolio-style checker on clusters. It finds surprising design bugs — hundreds in the original USB 3.0 driver work and multiple design faults during S3’s strong-consistency effort — emits reproducible traces and schedules, plugs into CI/CD, and narrows the gap between high-level design and implementation.
AI-written summary · about
chapters (12)
- 0:00Intro
- 1:01Programming Distributed Systems is Challenging!
- 2:18Not uncommon to find bugs in production after deployment
- 2:50Formal Methods to the Rescue!
- 4:04Thinking abstractly, formally, above coding
- 7:07Challenges with wide spread adoption of Formal Methods!
- 12:48Formal Reasoning of S3 Strong Consistency Design using P
- 14:44Two Phase Commit Protocol
- 24:06P Tutorials and Documentation
- 24:20Lessons Learned (P as a Thinking Tool)
- 27:30Model Checking as a search problem
- 28:13How to find deep bugs?
related talks
45m(...)Distributed Systems
14mFormal specifications for Microservices -
31mDesigning Distributed Systems with TLA+
01h 00mThe Secret Life of Distributed Systems
44mCommunication and Transactionality in Distributed Systems
34mThe Holy Grail of Systems Analysis: from What to Where to Why
43mBuilding Robust Systems with Weakly Interacting Feedback Structures
36mFlying Spaghetti Monster - Type Systems and Microservices
