A method of replicating data using a replication server of a multi-user system, the method comprising: storing context data on the replication server, the context data related to interaction(s) of one or more user(s) with or via the multi-user system; receiving, from a first one of a plurality of replication clients of the multi-user system, an update record corresponding to less than all of the stored context data; modifying the stored context data based at least in part on the received update record; using the replication server, automatically determining a plurality of propagation records based at least in part on the received update record, wherein each of the propagation records corresponds to a respective, different proper subset of the stored context data; and transmitting the propagation records of the plurality of propagation records to respective ones of the replication clients via one or more communications interfaces; characterised by determining a match between the update record and stored trigger conditions of an observer unit, a criteria to which the observer unit responds being its trigger conditions; and in response to the match: selecting data from the stored context data based at least in part on stored input criteria of the observer unit; transmitting the selected data to the observer unit; for execution of the observer unit under security restrictions, carrying out computer program instructions of the observer unit in a restricted-privilege execution configuration to prevent unsigned software plugins from executing, receiving a second update record from the observer unit; and modifying the stored context data based at least in part on the received second update record, or for remote or non-restricted execution of the observer unit, receiving a second update record from the observer unit; and modifying the stored context data based at least in part on the received second update record. storing context data on the replication server, the context data related to interaction(s) of one or more user(s) with or via the multi-user system; receiving, from a first one of a plurality of replication clients of the multi-user system, an update record corresponding to less than all of the stored context data; modifying the stored context data based at least in part on the received update record; using the replication server, automatically determining a plurality of propagation records based at least in part on the received update record, wherein each of the propagation records corresponds to a respective, different proper subset of the stored context data; and transmitting the propagation records of the plurality of propagation records to respective ones of the replication clients via one or more communications interfaces; characterised by determining a match between the update record and stored trigger conditions of an observer unit, a criteria to which the observer unit responds being its trigger conditions; and in response to the match: selecting data from the stored context data based at least in part on stored input criteria of the observer unit; transmitting the selected data to the observer unit; for execution of the observer unit under security restrictions, carrying out computer program instructions of the observer unit in a restricted-privilege execution configuration to prevent unsigned software plugins from executing, receiving a second update record from the observer unit; and modifying the stored context data based at least in part on the received second update record, or for remote or non-restricted execution of the observer unit, receiving a second update record from the observer unit; and modifying the stored context data based at least in part on the received second update record. selecting data from the stored context data based at least in part on stored input criteria of the observer unit; transmitting the selected data to the observer unit; for execution of the observer unit under security restrictions, carrying out computer program instructions of the observer unit in a restricted-privilege execution configuration to prevent unsigned software plugins from executing, receiving a second update record from the observer unit; and modifying the stored context data based at least in part on the received second update record, or carrying out computer program instructions of the observer unit in a restricted-privilege execution configuration to prevent unsigned software plugins from executing, receiving a second update record from the observer unit; and modifying the stored context data based at least in part on the received second update record, for remote or non-restricted execution of the observer unit, receiving a second update record from the observer unit; and modifying the stored context data based at least in part on the received second update record. receiving a second update record from the observer unit; and modifying the stored context data based at least in part on the received second update record.