A method of replicating changes made to a source data repository at a target data repository using a change event detection subsystem configured to run at the source data repository, a change event implementation subsystem including an event receiver service and an event actor service configured to run at the target data repository, and a messaging service (206, 320) configured to transmit received messages in accordance with message subscriptions, the method comprising, at the target data repository: subscribing, by the target data repository, to change event messages from the messaging service; receiving, by the event receiver service, a change event message via the messaging service from the source data repository, comprising information specifying a data change event detected by the change event detection subsystem at the source data repository, the data change event comprising one or more data values being written to the source data repository, wherein the change event message includes identifying information allowing the one or more data values to be identified but does not include the one or more data values; in response to the change event message, performing, by the event actor service at the target data repository, steps of: sending a request for the one or more data values from the target data repository to the source data repository, the request including the identifying information; receiving the one or more data values from the source data repository at the target data repository; and updating data stored in the target data repository based on the received one or more data values; wherein change event messages are pushed to the target data repository from the source data repository using a first information path comprising the messaging service, and the requested data values are pulled by the event actor service at the target data repository from the source data repository using a second information path that does not include the messaging service. subscribing, by the target data repository, to change event messages from the messaging service; receiving, by the event receiver service, a change event message via the messaging service from the source data repository, comprising information specifying a data change event detected by the change event detection subsystem at the source data repository, the data change event comprising one or more data values being written to the source data repository, wherein the change event message includes identifying information allowing the one or more data values to be identified but does not include the one or more data values; in response to the change event message, performing, by the event actor service at the target data repository, steps of: sending a request for the one or more data values from the target data repository to the source data repository, the request including the identifying information; receiving the one or more data values from the source data repository at the target data repository; and updating data stored in the target data repository based on the received one or more data values; sending a request for the one or more data values from the target data repository to the source data repository, the request including the identifying information; receiving the one or more data values from the source data repository at the target data repository; and updating data stored in the target data repository based on the received one or more data values; wherein change event messages are pushed to the target data repository from the source data repository using a first information path comprising the messaging service, and the requested data values are pulled by the event actor service at the target data repository from the source data repository using a second information path that does not include the messaging service.