A system for coordinating events in a distributed system, comprising: a plurality of subsidiary nodes coupled to a network, each subsidiary node including at least one processor, a computer-readable medium, and a communications interface, wherein information in a first subsidiary node needs to be synchronized with the information in a second subsidiary node in response to a time-varying series of requests; a first gateway, including a first processor, a first local clock, and a first communications interface coupling the first gateway to the network; a second gateway, including a second processor, a second local clock, and a second communications interface coupling the second gateway to the network; a timekeeping node coupled to the network, including a master clock; and a synchronization rectifier coupled to the first and second subsidiary nodes; wherein the timekeeping node is operationally coupled to the first and second gateways via the network to reduce clock skew between the master clock, the first local clock and the second local clock below a configurable threshold; wherein the first gateway uses the first processor to timestamp a first request, among said time-varying series of requests, received over the first communications interface according to the time of the first local clock with a granularity at least equal to the configurable threshold; wherein the second gateway uses the second processor to timestamp a second request, among said time-varying series of requests, received over the second communications interface according to the time of the second local clock with a granularity at least equal to the configurable threshold; wherein synchronization between the first subsidiary node and the second subsidiary node is controlled by the later-occurring request if the first request and the second request are separated by a time greater than the configurable threshold; and wherein synchronization between the first subsidiary node and the second subsidiary node is controlled by the synchronization rectifier if the first request and the second request are separated by a time smaller than the configurable threshold. a plurality of subsidiary nodes coupled to a network, each subsidiary node including at least one processor, a computer-readable medium, and a communications interface, wherein information in a first subsidiary node needs to be synchronized with the information in a second subsidiary node in response to a time-varying series of requests; a first gateway, including a first processor, a first local clock, and a first communications interface coupling the first gateway to the network; a second gateway, including a second processor, a second local clock, and a second communications interface coupling the second gateway to the network; a timekeeping node coupled to the network, including a master clock; and a synchronization rectifier coupled to the first and second subsidiary nodes; wherein the timekeeping node is operationally coupled to the first and second gateways via the network to reduce clock skew between the master clock, the first local clock and the second local clock below a configurable threshold; wherein the first gateway uses the first processor to timestamp a first request, among said time-varying series of requests, received over the first communications interface according to the time of the first local clock with a granularity at least equal to the configurable threshold; wherein the second gateway uses the second processor to timestamp a second request, among said time-varying series of requests, received over the second communications interface according to the time of the second local clock with a granularity at least equal to the configurable threshold; wherein synchronization between the first subsidiary node and the second subsidiary node is controlled by the later-occurring request if the first request and the second request are separated by a time greater than the configurable threshold; and wherein synchronization between the first subsidiary node and the second subsidiary node is controlled by the synchronization rectifier if the first request and the second request are separated by a time smaller than the configurable threshold.