1. A computer-implemented method for resource recovery, the method comprising: a processor executing an application on a primary host machine comprising a first virtual machine with the processor and a memory; receiving a designation from the application of a portion of the memory of the first virtual machine as purgeable memory, wherein the purgeable memory represents portions of memory that can be reconstructed by the application when the purgeable memory is unavailable; tracking changes to a processor state and to a remaining portion of the memory that is not designated by the application as purgeable memory; periodically stopping the first virtual machine; in response to stopping the first virtual machine, forwarding the changes to the remaining portion of the memory to a secondary host machine comprising a second virtual machine; in response to completing the forwarding of the changes, resuming execution of the first virtual machine; and in response to an occurrence of a failure condition on the first virtual machine, signaling the secondary host machine to continue execution of the application by using the forwarded changes to the remaining portion of the memory and by having the application reconstruct the purgeable memory at the second virtual machine.