In distributed systems, message passing is a low level representation of communication resulting in intricate designs and proofs. This paper presents a new abstraction to express communication: the observation. This notion provides a more concise expression of programs and properties, and consequently is an effective help in understanding and reasoning about distributed algorithms. Observations are formalized in the Unity framework.
We define the observation relation and state its main properties. Then, we present the description and the proof of a generic problem. The abstract level of description separates concerns between the algorithm and its communication pattern. Thus, the topology of observations can be changed while preserving the algorithm properties.