This document defines and discusses key principles and characteristics of distributed systems. It states that a distributed system is a collection of independent computers that appear as a single coherent system to users. Important goals of distributed systems are connecting users to resources, transparency, openness, and scalability. Distributed systems are made up of hardware components like multiple autonomous machines that communicate over a network, as well as software like middleware that hides the underlying platform heterogeneity from applications.