Skip to content

salespaulo/awesome-tlaplus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 

Repository files navigation

Awesome TLA+ Awesome

TLA+ is a formal specification and verification language to help engineers design, specify, reason about, and verify complex software and hardware systems. It is widely used to verify the algorithms in distributed systems.

Contents

WebSites

Discussions

Tools

Verification

IDEs

Misc

Books

TLA+ blog posts and articles

name description
AWS and TLA+ Use of Formal Methods at Amazon Web Services
Batch Installer Sending async batches of commands.
Redux Redux reducers with verifying a temporal property.
Zero Downtime Deployments A simple model of a deploying new code to servers where at least one server is always available to clients, and all available servers show the same code version.
Trading Algorithm Trading boths executing trades in a simulated market, showing how it’s susceptible to flash crashes.
Detecting Linked-List Cycles Finding cycles in linked lists.
Replicated Storage Replicated storage system with a quorum.
Rate Limiter Independent workers hitting a rate-limited API.
Thread Pool Multiple reader and writer threads sharing a bounded queue, discovering deadlocks.
Bank Transfer Specifying a bank transfer with overdraft protection.
Finding bugs in systems through formalization Ensuring distributed jobs go from “pending” to “completed”.
Building A "Simple" Distributed System Rebalanser - distributed resource allocation library.
Train Sidings – A TLA+ Example Railroad line where two trains can pass each other.
Azure Cosmos TLA+ specifications The consistency levels offered by Azure Cosmos DB (also see Murat Demirbas' talk).
Modeling Streamlet in TLA+ A PlusCal spec of a crash fault-tolerant variant of the Streamlet blockchain protocol.
Using TLA+ in the Real World to Understand a Glibc Bug Lifting code to the specification level to study a complex concurrency bug.

Real-world specs (not part of TLA+ Examples)

name description
TLA+ in TIDB verify the distributed consensus algorithm : Raft & the implementation of distributed transaction.
Generating All Combinations and Partitions Spec of an algorithm in Knuth's TAOCP. It's Java implemenation is used by TLC.

TLA+ Video Resources

Scientific papers

Theory

Tools

Application

(University) courses teaching (with) TLA+

About

A curated list of TLA+ resources.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published