1. A system for providing live migration of a primary application to one or more backup applications, the system comprising: one or more memory locations configured to store said primary application executing on a host with a host operating system; one or more interceptors configured to intercept calls from threads of applications to the host operating system and shared libraries for access to resources, and configured to generate replication messages based on said intercepted calls; a barrier for said primary application that ensures that the replication messages from the primary application correspond to fully finished resource calls, by halting execution, and access to the resources and the corresponding replication messages are synchronized to the entry and exit of the interceptor; a messaging layer for said primary application configured to transmit said replication messages to the one or more backups; a logging facility for said messaging layer; a checkpointing service for said primary application configured to checkpoint said primary application; and one or more additional memory locations configured to store the one or more backup applications executing on one or more backup hosts each with a corresponding host operating system; one or more interceptors configured to intercept calls to said one or more backup host operating systems and shared libraries; one or more barriers for said one or more backup applications; a messaging layer for each one or more backup applications configured to provide ordered receipt of said replication messages; a checkpointing service for each one or more backup applications configured to checkpoint-restore said one or more backup applications; and wherein live migration of said primary application to said one or more backup hosts is performed in response to an event or fault.