View on GitHub

Distributed Programming Reading Group

Spring 2019, Wednesdays 10-10:50am, ECCS 121E

The focus of this reading group is on languages, abstractions, and verification tools for distributed programming. Our reading list is taken from Lindsey Kuper’s fantastic course Languages and Abstractions for Distributed Programming at UC Santa Cruz. As in her course, we focus on consistency models and language-based approaches to specifying, implementing, and verifying them. In the last two weeks, we turn our attention to formal verification of distributed systems.

If you’re interested in joining at any point in the semester, send David Moon an email at


Date Paper Presenter
Jan 16 Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services (2002)
Perspectives on the CAP Theorem
CAP Twelve Years Later: How the “Rules” Have Changed
Jan 23 Linearizability: A Correctness Condition for Concurrent Objects (TOPLAS 1990) Akash
Jan 30 Time, Clocks, and the Ordering of Events in a Distributed System (1978)
Causal memory: definitions, implementation, and programming (Distributed Computing, 1995)
Feb 6 Don’t Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS
see also: consistency hierarchy in Section 3 of Consistency in Non-Transactional Distributed Storage Systems
Feb 13 Conflict-free Replicated Data Types (2011) Juraj
Feb 20 Replicated Data Types: Specification, Verification, Optimality (POPL ‘14) Nick
Feb 27 Disciplined Inconsistency with Consistency Types (SoCC ‘16) Akash
Mar 6 ‘Cause I’m Strong Enough: Reasoning About Consistency Choices in Distributed Systems (POPL ‘16) David
Mar 13 bad weather  
Mar 20 Declarative Programming over Eventually Consistent Data Stores (PLDI ‘15) Juraj
Mar 27 spring break  
Apr 3 MixT: a Language for Mixing Consistency in Geodistributed Transactions (PLDI ‘18) Sananda
Apr 10 Consistency Analysis in Bloom: a CALM and Collected Approach (CIDR ‘11) Nick
Apr 17 Logic and Lattices for Distributed Programming (SoCC ‘15) Akash
Apr 24 Naiad: A Timely Dataflow System David
May 1 Rehearsal: A Configuration Verification Tool for Puppet (PLDI ‘16) Sananda