1. A method implemented on a server, the method comprising: storing, on a database of the server, a causal tree structure corresponding to a document, wherein the causal tree structure comprises a sequence of editing instructions and each editing instruction is assigned an identifier unique to such editing instruction, wherein the identifier comprises: a site identifier unique to an editing session of a user; a stamp, which is a numeric value based on identifiers assigned to editing instructions in the causal tree structure; and a cause identifier, wherein the cause identifier is an identifier of a prior editing instruction in a node in the causal tree structure that precedes an additional node; receiving, at the server, a user editing instruction for the document, wherein the user editing instruction is assigned an identifier unique to the user editing instruction; storing, using a processor of the server, the user editing instruction and the identifier assigned to the user editing instruction as the additional node to the causal tree structure; and broadcasting, to a plurality of client devices connected to the server, the user editing instruction and the identifier assigned to the user editing instruction.