1. A computing system comprising: a plurality of software components each implementing logic to perform a task, the components executing in a run-time execution environment comprising one or more machines connected in a network and adapted for communicating messages between the components, said messages characterized as having non-deterministic arrival orders at a receiving component; means for automatically generating a deterministic timestamp and associating said deterministic timestamp in conjunction with a message to be communicated from a sender component to a receiver component during program execution, said deterministic timestamp representative of estimated time of arrival of said message at said receiver component; means for deterministically executing said component by using said deterministic timestamps to generate a unique arrival order of input messages; means for tracking state of a component during program execution, and checkpointing said state to a local storage device; wherein upon failure of a machine, said component state is restored by recovering a recent stored checkpoint and re-executing the events occurring since said last checkpoint.