A distributed computing system is a collection of individual computing devices that can communicate with each other. Although this definition encompasses a wide range of computer systems, we will focus on what is known as a loosely coupled distributed system, such as a local-area cluster of workstations or the Internet. In such systems, processors communicate via message passing over a network and may cooperate to run a distributed algorithm for a common purpose such as sharing resources.

Distributed computing systems are often represented using graph notation to indicate connectivity. In such a graph, the nodes are processors, the edges are communication links between processors, and arrows indicate direction of communication over a link. The pattern of connections provided by the links in a computer network is known as the network topology.