A method of operating one or more intermediate nodes (40, 42, 44) in a message-oriented distributed system providing a data processing pipeline dedicated to a particular application, the data processing pipeline comprising an ingress node, one or more intermediate nodes and an egress node, said method comprising operating each of said one or more intermediate nodes to: a) receive a message from the previous node in the pipeline; b) process the payload of the message received from the previous node in the pipeline; and c) generate an intermediate node output message comprising derived application data derived by the intermediate node and any previous intermediate nodes in the pipeline by transforming the payload of a message input into the data processing pipeline; and d) output the intermediate node output message to the next node in the pipeline; said method being characterised by: the received message having a message annotation including a reference to a log interface which allows the egress node in the pipeline to extract the stored log information relevant to the creation of the received message; and further operating the intermediate node to: e) store log information relevant to the creation of the intermediate node output message, by adding, for the intermediate node output message, a log entry to a log stored by the intermediate node; f) produce an augmented message annotation by adding a reference to a log interface which allows the egress node in the pipeline to extract the log information relevant to the creation of the intermediate node output message, the output message including the augmented message annotation; g) receive a request for the log information relevant to the creation of the intermediate node output message from the egress node in the pipeline using the reference added to the message annotation by the intermediate node; and h) provide the requested information in response to that request. a) receive a message from the previous node in the pipeline; b) process the payload of the message received from the previous node in the pipeline; and c) generate an intermediate node output message comprising derived application data derived by the intermediate node and any previous intermediate nodes in the pipeline by transforming the payload of a message input into the data processing pipeline; and d) output the intermediate node output message to the next node in the pipeline; the received message having a message annotation including a reference to a log interface which allows the egress node in the pipeline to extract the stored log information relevant to the creation of the received message; and further operating the intermediate node to: e) store log information relevant to the creation of the intermediate node output message, by adding, for the intermediate node output message, a log entry to a log stored by the intermediate node; f) produce an augmented message annotation by adding a reference to a log interface which allows the egress node in the pipeline to extract the log information relevant to the creation of the intermediate node output message, the output message including the augmented message annotation; g) receive a request for the log information relevant to the creation of the intermediate node output message from the egress node in the pipeline using the reference added to the message annotation by the intermediate node; and h) provide the requested information in response to that request. e) store log information relevant to the creation of the intermediate node output message, by adding, for the intermediate node output message, a log entry to a log stored by the intermediate node; f) produce an augmented message annotation by adding a reference to a log interface which allows the egress node in the pipeline to extract the log information relevant to the creation of the intermediate node output message, the output message including the augmented message annotation; g) receive a request for the log information relevant to the creation of the intermediate node output message from the egress node in the pipeline using the reference added to the message annotation by the intermediate node; and h) provide the requested information in response to that request.