Audience and Pre-Requisites This tutorial covers the basics of distributed systems design. The pre-requisites are significant programming experience with a language such as C++ or Java, a basic understanding of networking, and data structures & algorithms. The Basics What is a distributed system? It's one of those things that's hard to define without first defining many other things. Here is a "ca