A method of managing a message-oriented distributed system providing a data processing pipeline dedicated to a particular user application, the data processing pipeline comprising an ingress node, one or more intermediate nodes and an egress node, said method comprising: operating the ingress node in the pipeline to receive a message input into the data processing pipeline; operating the egress node to receive a message output by an intermediate node, the message comprising derived user application data derived by the one or more intermediate nodes (40, 42, 44) in the data processing pipeline by transforming the payload of a the message input into the data processing pipeline; the method being characterised by: further operating the ingress node in the pipeline to store log information relevant to the creation of an ingress node output message, and output the ingress node output message to the first intermediate node in the pipeline, the ingress node output message having a message annotation including a reference to a log interface which allows the egress node to extract the stored log information relevant to the creation of the ingress node output message; operating each intermediate node in the pipeline to receive a message from the previous node in the pipeline, process the payload of the message received from the previous node in the pipeline, store log information relevant to the creation of the intermediate node output message, produce an augmented message annotation by adding a reference to a log interface which allows the egress node to extract the log information relevant to the creation of the intermediate node output message, and output an intermediate node output message having the augmented message annotation and the processed payload to the next node in the pipeline; further operating the egress node of the data processing pipeline to selectively gather the log information based on a debug level stored by the ingress and intermediate nodes using the list of log interfaces in the message received by the egress node. operating the ingress node in the pipeline to receive a message input into the data processing pipeline; operating the egress node to receive a message output by an intermediate node, the message comprising derived user application data derived by the one or more intermediate nodes (40, 42, 44) in the data processing pipeline by transforming the payload of a the message input into the data processing pipeline; the method being characterised by: further operating the ingress node in the pipeline to store log information relevant to the creation of an ingress node output message, and output the ingress node output message to the first intermediate node in the pipeline, the ingress node output message having a message annotation including a reference to a log interface which allows the egress node to extract the stored log information relevant to the creation of the ingress node output message; operating each intermediate node in the pipeline to receive a message from the previous node in the pipeline, process the payload of the message received from the previous node in the pipeline, store log information relevant to the creation of the intermediate node output message, produce an augmented message annotation by adding a reference to a log interface which allows the egress node to extract the log information relevant to the creation of the intermediate node output message, and output an intermediate node output message having the augmented message annotation and the processed payload to the next node in the pipeline; further operating the egress node of the data processing pipeline to selectively gather the log information based on a debug level stored by the ingress and intermediate nodes using the list of log interfaces in the message received by the egress node. further operating the ingress node in the pipeline to store log information relevant to the creation of an ingress node output message, and output the ingress node output message to the first intermediate node in the pipeline, the ingress node output message having a message annotation including a reference to a log interface which allows the egress node to extract the stored log information relevant to the creation of the ingress node output message; operating each intermediate node in the pipeline to receive a message from the previous node in the pipeline, process the payload of the message received from the previous node in the pipeline, store log information relevant to the creation of the intermediate node output message, produce an augmented message annotation by adding a reference to a log interface which allows the egress node to extract the log information relevant to the creation of the intermediate node output message, and output an intermediate node output message having the augmented message annotation and the processed payload to the next node in the pipeline; further operating the egress node of the data processing pipeline to selectively gather the log information based on a debug level stored by the ingress and intermediate nodes using the list of log interfaces in the message received by the egress node.