1. A method comprising: updating a first checkpoint image, responsive to a first change made by a first instance of an application executing on a plurality of nodes, wherein the first instance of the application is executing on a first node of the plurality of nodes, wherein the first checkpoint image is maintained at the first node, and wherein the first checkpoint image comprises a first state of the first instance of the application; updating, responsive to a second change committed by any of the first instance of the application and at least one other instance of the application executing on at least one other node of the plurality of nodes, a second checkpoint image maintained at a distributed shared memory shared by the plurality of nodes wherein the distributed shared memory propagates the second checkpoint image to the plurality of nodes, and wherein the second checkpoint image comprises a second state of any of the first and the at least one other instances of the application; creating, from at least a portion of the distributed shared memory and in response to the second change, a checkpoint-image snapshot comprising data indicative of the second state of any of the first and the at least one other instances of the application; and storing the checkpoint-image snapshot on at least one node of the plurality of nodes.