Compositional Programming and Testing of Dynamic Distributed Systems
summary
Describes a module system and a concrete programming tool, ModP, for building dynamic distributed systems composed of asynchronously-communicating state machines whose instances and communication topology can change at runtime. Explains a compositional trace-refinement/assume-guarantee approach to reason about correctness and shows how ModP supports modular implementation and abstraction-based systematic testing, demonstrated on a fault-tolerant transaction commit service and a fault-tolerant distributed hashtable with performance comparable to open-source equivalents.
AI-written summary · about
chapters (17)
- 0:00Intro
- 0:22Characteristics of Distributed Systems
- 1:11Programming Event Driven Systems is Challenging
- 1:41The P Programming Language
- 2:48Fault-Tolerant Distributed Services
- 3:39Testing Distributed Systems is Challenging
- 5:31Coverage Amplification
- 6:40Monolithic vs Compositional
- 7:13Abstraction based Decomposition
- 10:07Road Map
- 14:48ModP Module
- 15:33Traces and Refinement
- 16:20Module Composition
- 17:01Challenge for Compositional Reasoning
- 17:57Compositional Testing the Software Stack
- 18:42Conclusion
- 22:04Randomized Testing of Distributed Systems with Probabilistic Guarantees
related talks
41mProgramming Distributed Systems
01h 32mDistributed functional programming
18mHybrid Multiparty Session Types: Compositionality for Protocol Specification th...
39mCompositional protocol (..) communicating actors
19mModulo: Finding Convergence Failure Bugs in Distributed Systems with Divergence...
41mData Driven and Containerized Testing of Multi Service Networked Systems
14mA Refinement Methodology for Distributed Programs in Rust
48mFrom Byzantine Generals to Global Harmony, Modularly
