An asynchronous, peer-to-peer design is provided for synchronizing data on
machines within a cluster using messaging. The data may be represented in
memory as a document object model in secondary storage. Messaging may be
handled by a messaging system with topic destinations. The design
supports persistence management, locking, and transactions with rollback,
and maintains a uniform state for the data across all nodes and secondary
storage at all times. Furthermore, barring catastrophic failure of all
machines in the cluster and secondary storage, there is no possibility of
losing committed data.