1. In a distributed system having a plurality of interconnected processors on which processes are run, apparatus for restoring a consistent system-wide state after one or more processors undergo a failure in which messages processed thereby are lost, or in which the internal states of one or more recovery units of a processor are lost, the apparatus comprising: a plurality of logically interconnected recovery units which communicate messages therebetween, wherein each recovery unit corresponds to a set of processes, and wherein a representative recovery unit comprises: (a) means for performing computations and generating messages within the representative recovery unit, in response to each incoming message, the set of computations being performed between successive incoming messages representing a state interval of the representative recovery unit; (b) means for storing a unique identification for the current state interval of the representative recovery unit; and (c) dependency tracking means for storing the state interval identifiers for a system-wide set of state intervals upon which the current state interval of the repesentative recovery unit depends, wherein a state interval A in the representative recovery unit is dependent on a state interval B of a recovery unit if (i) the state interval B precedes the state interval A in the representative recovery unit, (ii) a message sent during the state interval B started the state interval A, or (iii) the state interval A depends upon some other interval which in turn depends upon the state interval B; wherein the respective states of the plurality of recovery units at a given time collectively represent the system-wide state for the given time.