A computer-implemented method, comprising: executing a first session of a video game in a first data center; concurrent with the first session, executing a second session of the video game in a second data center; wherein the first session and second session independently generate a first game state and a second game state, respectively, the first game state and the second game state simultaneously representing a shared virtual space; wherein events in the shared virtual space effected via the first session are implemented through transactions on a first set of memory objects stored at the first data center, the first session accessing a first library (108, 200) configured to generate a first set of update packages, based on the transactions on the first set of memory objects, and transmit the first set of update packages to the second data center; wherein events in the shared virtual space effected via the second session are implemented through transactions on a second set of memory objects stored at the second data center, the second session accessing a second library (118, 216) configured to generate a second set of update packages, based on the transactions on the second set of memory objects, and transmit the second set of update packages to the first data center; wherein a transaction includes a timestamp indicating a time of the transaction, a memory identifier that identifies a memory object to be updated, and a value of a variable to be updated; wherein a memory object includes one or more variables that define the state of an object in the shared virtual space; applying the first set of update packages to the second set of memory objects at the second data center; applying the second set of update packages to the first set of memory objects at the first data center; wherein the generating, transmitting, and applying of the first set and second set of update packages enables synchronization of at least some of the first set of memory objects with corresponding ones of the second set of memory objects; wherein applying the first set of update packages changes one or more values of the corresponding ones of the second set of memory objects, and wherein applying the second set of update packages changes one or more values of the at least some of the first set of memory objects. executing a first session of a video game in a first data center; concurrent with the first session, executing a second session of the video game in a second data center; wherein the first session and second session independently generate a first game state and a second game state, respectively, the first game state and the second game state simultaneously representing a shared virtual space; wherein events in the shared virtual space effected via the first session are implemented through transactions on a first set of memory objects stored at the first data center, the first session accessing a first library (108, 200) configured to generate a first set of update packages, based on the transactions on the first set of memory objects, and transmit the first set of update packages to the second data center; wherein events in the shared virtual space effected via the second session are implemented through transactions on a second set of memory objects stored at the second data center, the second session accessing a second library (118, 216) configured to generate a second set of update packages, based on the transactions on the second set of memory objects, and transmit the second set of update packages to the first data center; wherein a transaction includes a timestamp indicating a time of the transaction, a memory identifier that identifies a memory object to be updated, and a value of a variable to be updated; wherein a memory object includes one or more variables that define the state of an object in the shared virtual space; applying the first set of update packages to the second set of memory objects at the second data center; applying the second set of update packages to the first set of memory objects at the first data center; wherein the generating, transmitting, and applying of the first set and second set of update packages enables synchronization of at least some of the first set of memory objects with corresponding ones of the second set of memory objects; wherein applying the first set of update packages changes one or more values of the corresponding ones of the second set of memory objects, and wherein applying the second set of update packages changes one or more values of the at least some of the first set of memory objects.