Data structure: the treap! by Julia Evans
Patience is a Virtue: Revisiting Merge and Sort on Modern Processors by Badrish Chandramouli and Jonathan Goldstein
Bigtable: A Distributed Storage System for Structured Data by Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert E. Gruber
Calvin: Fast Distributed Transactions for Partitioned Database Systems by Alexander Thomson, Thaddeus Diamond, Shu-Chun Weng, Kun Ren, Philip Shao, and Daniel J. Abadi
Cassandra - A Decentralized Structured Storage System by Avinash Lakshman and Prashant Malik
Consistency Tradeoffs in Modern Distributed Database Design by Daniel J. Abadi
Dremel: Interactive Analysis of Web-Scale Datasets by Sergey Melnik, Andrey Gubarev, Jing Jing Long, Geoffrey Romer, Shiva Shivakumar, Matt Tolton, and Theo Vassilakis
Dynamo: Amazon’s Highly Available Key-value Store by Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshal, and Werner Vogels
HFile: A Block-Indexed File Format to Store Sorted Key-Value Pairs by Schubert Zhang
Improved Query Performance with Variant Indexes by Patrick O'Neil and Dallan Quass
MapReduce: Simplified Data Processing on Large Clusters by Jeffrey Dean and Sanjay Ghemawat
NoSQL Databases: a Survey and Decision Guidance by Felix Gessert
Principles of Transaction-Oriented Database Recovery by Theo Haerder and Andreas Reuter
Query Execution in Column-Oriented Database Systems by Daniel J. Abadi
Scuba: Diving into Data at Facebook by Lior Abraham, John Allen, Oleksandr Barykin, Vinayak Borkar, Bhuwan Chopra, Ciprian Gerea, Daniel Merl, Josh Metzler, David Reiss, Subbu Subramanian, Janet L. Wiener, and Okay Zed
SFS: Random Write Considered Harmful in Solid State Drives by Changwoo Mina, Kangnyeon Kimb, Hyunjin Choc, Sang-Won Leed, and Young Ik Eome
Spanner: Google’s Globally-Distributed Database by James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, JJ Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson Hsieh, Sebastian Kanthak, Eugene Kogan, Hongyi Li, Alexander Lloyd, Sergey Melnik, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Christopher Taylor, Ruth Wang, and Dale Woodford
Stream processing, Event sourcing, Reactive, CEP… and making sense of it all by Martin Kleppman
TAO: Facebook’s Distributed Data Store for the Social Graph by Nathan Bronson, Zach Amsden, George Cabrera, Prasad Chakka, Peter Dimov, Hui Ding, Jack Ferris, Anthony Giardullo, Sachin Kulkarni, Harry Li, Mark Marchukov, Dmitri Petrov, Lovro Puzar, Yee Jiun Song, and Venkat Venkataramani
The Cache Sketch: Revisiting Expiration-based Caching in the Age of Cloud Data Management by Felix Gessert, Michael Schaarschmidt, Wolfram Wingerath, Steffen Friedrich, and Norbert Ritter
The Design and Implementation of Modern Column-Oriented Database Systems by Daniel Abadi, Peter Boncz, Stavros Harizopoulos, Stratos Idreos, and Samuel Madden
The Google File System by Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung
The Log-Structured Merge-Tree (LSM-Tree) by Patrick O'Neil, Edward Cheng, Dieter Gawlick, and Elizabeth O'Neil
Turning the database inside-out with Apache Samza by Martin Kleppmann
2PC or not 2PC, Wherefore Art Thou XA? by Dan Prichett
A comprehensive study of Convergent and Commutative Replicated Data Types by Marc Shapiro, Nuno Pregui¸ca, Carlos Baquero, and Marek Zawirsk
Algorithmic Nuggets in Content Delivery by Bruce M. Maggs and Ramesh K. Sitaraman
An Introduction to Distributed Systems by Kyle Kingsbury
An Introduction to Programming with Threads by Andrew D. Birrell
Anna Concurrenina by Kyle Kingsbury (presentation)
Avoiding Two Phase Commit, Redux by Dan Prichett
Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services by Seth Gilbert and Nancy Lynch
Consistency, Availability, and Convergence by Prince Mahajan, Lorenzo Alvisi, and Mike Dahlin
Consistency in a Partitioned Network: A Survey by Susan B. Davidson, Hector Garcia-Molina, and Dale Skeen
Distibuted systems for fun and profit by Mikito Takada
Eventually Consistent by Werner Vogels
Harvest, Yield, and Scalable Tolerant Systems by Armando Fox and Eric A. Brewer
Impossibility of Distributed Concensus with One-Faulty Process by Michael J. Fischer, Nancy A. Lynch, and Michael S. Patterson
In Search of an Understandable Consensus Algorithm by Diego Ongaro and John Ousterhout
Jepsen Analyses by Kyle Kingsbury
Large-scale cluster management at Google with Borg by Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, and John Wilkes
Lifeguard: SWIM-ing with Situational Awareness by Armon Dadgar, James Phillips, and Jon Currey
Linearizability: A Correctness Condition for Concurrent Objects by Maurice P. Herlihy and Jeannette M. Wing
Making reliable distributed systems in the presence of software errors by Joe Armstrong
Notes on Distributed Systems for Young Bloods by Jeff Hodges
Paxos Made Simple by Leslie Lamport
Sharing Memory Robustly in Message-Passing Systems by Hagit Attiya, Amotz Bar-Noy, and Danny Dolev
Spanner, TrueTime & The CAP Theorem by Eric Brewer
The Byzantine Generals Problem by Leslie Lamport, Robert Shostak, and Marshall Pease
The Chubby lock service for loosely-coupled distributed systems by Mike Burrows
The Dangers of Replication and a Solution by Jim Gray, Pat Helland, Patrick O'Neil, and Dennis Shasha
The Log: What every software engineer should know about real-time data's unifying abstraction by Jay Kreps
The Part-Time Parliament by Leslie Lamport
Time, Clocks and the Ordering of Events in a Distributed System by Leslie Lamport
Your Coffee Shop Doesn’t Use Two-Phase Commit by Gregor Hohpe
AWS Application Load Balancer Summary by Jerry Hargrove
Cluster Schedulers by Cindy Sridharan
Envoy by Cindy Sridharan
Google’s approach to observability by @rakyll
Monitoring and Observability by Cindy Sridharan
On Designing and Deploying Internet-Scale Services by James Hamilton
Pattern: Service Mesh by Phil Calçado
Queues Don't Fix Overload by Fred Hebert
Site Reliability Engineering: How Google Runs Production Systems by Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy
Tenets of SRE by Stephen Thorne
Tout est Terrible by Fred Hebert
Why Amazon DynamoDB isn’t for everyone by Forrest Brazeal
Functional Programming Jargon by hemanth
How Discord Scaled Elixir to 5,000,000 Concurrent Users by Stanislav Vishnevskiy
Of Boxes and Trees - Smart Pointers in Rust by Matthias Endler
What's a reference in Rust? by Julia Evans
ACIDRain: Concurrency-Related Attacks on Database-Backed Web Applications by Todd Warszawski and Peter Bailis
Actor Model of Computation: Scalable Robust Information Systems by Carl Hewitt
Don't Build a Distributed Monolith by Ben Christensen (presentation)
End-to-End Arguments in System Design by J.H. Saltzer, D.P. Reed, and D.D. Clark
Hints for Computer System Design by Butler W. Lampson
How Discord Indexes Billions of Messages by Jake Heinz
How do you cut a monolith in half? by tef
Interesting Codebases by Mark Papadakis
On the Criteria To Be Used in Decomposing Systems into Modules by D.L. Parnas
Program design in the UNIX environment by Rob Pike and Brian W. Kernighan
Questioning the Lambda Architecture by Jay Kreps
The 4+1 View Model of Architecture by Philippe B. Kruchte