This document summarizes a presentation about distributed systems and NodeJS. It discusses key concepts like scalability, availability, consistency and the CAP theorem. It states that a distributed system cannot have all three of these properties and must choose two. The presentation demonstrates building three different types of distributed key-value stores in NodeJS - a CA system using two-phase commit, an AP system using sloppy quorums, and a CP system using majority quorums. Q&A links to resources on Amazon Dynamo, the RAFT consensus algorithm and the code used in the presentation.