Modular verification of MongoDB Transactions using TLA+

Joint work with Will Schultz . A transaction groups multiple operations into an all-or-nothing logical-box to reduce the surface area exposed to concurrency control and fault recovery, simplifying the application programmer's job. Transactions support ACID guarantees: atomicity, consistency, isolation, durability. Popular isolation levels include, Read Committed (RC), Snapshot Isolation (SI), and Serializability (SER), which offer increasing protection against concurrency anomalies. MongoDB Transactions MongoDB’s transaction model has evolved incrementally. v3.2 (2015): Introduced single-document transactions using MVCC in the WiredTiger storage engine. v4.0 (2018): Extended support to multi-document transactions within a replica set (aka shard). v4.2 (2019): Enabled fully distributed transactions across shards. Replica Set Transactions. All transaction operations are first performed on the primary using the WiredTiger transaction workflow/algorithm. Before co...