PolyglotConf 2014: Notes on Introduction to Distributed Systems
The session on Introduction to Distributed Systems was definitely one of my favorites this year. I can argue it was on the same lines of "how to become a better programmer" on Polyglot 2013's conference, because I could compile a lot of call-to-actions.
The session was led by Fred Hebert (author of Learn You Some Erlang) and Jeremy Pierre (Askuity's Distributed System guru) explaining the core problems you may find in distributed systems in layman words. The first concept to get tackled was the CAP Theorem, in which Fred used a metaphor of two groups of people separated on an stranded island trying to communicate and coordinate. The second one was mentioned by Jeremy, commonly known as the 2 General Problem or The Byzantine Generals Problem which was really enlightening.
After those two first intros, a lot of recommendations came by from the session leaders and Saem Ghani. Here is a summary of the different resources a person should read in order to get a better understanding on Distributed Systems:
1) End-To-End Arguments in System Design[pdf] by J.H. Saltzer and others.
2) Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services[pdf] by Seth Gilbert and Nancy Lynch.
3) Virtual Time and Global States of Distributed Systems[pdf] by Friedemann Mattern
4) Two Phase Commit Protocol, I also read this blog post that tackles this concept with some illustrations.
5) In Search of an Understandable Consensus Algorithm[pdf] a.k.a the Raft algorithm by Diego Ongaro and John Ousterhout
6) Idempotence is Not a Medical Condition by Pat Helland.
Bonus blog-posts and papers:
8) The 8 Fallacies of Distributed Computing[pdf] this is an explained version done by Arnon Rotem-Gal-Oz
9) Dynamo: Amazon’s Highly Available Key-value Store[pdf] by a bunch of people. This paper was emphasized as a suggested reading by Jeremy and Saem.
10) Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications[pdf] by a bunch of people. This paper was emphasized as a suggested reading by Saem.
11) Notes on Distributed Systems for Young Bloods[pdf] by Jeff Hodges. This blog post was praised by Jeremy, stating that he tries to read it at least 2 times a year.
The session was an amazing experience, and I would recommend for people missing the PolyglotConf this year to try for the next one.











