Method for improving reliability of distributed computer systems based on service-oriented architecture, wherein the method comprises the steps of: - providing a source element (101, 106, 107); - providing a destination element; - connecting the source element and the destination element by means of a computer connection; - allowing transmission of a message between the source element and the destination element; the method being characterized in that it further comprises the step of: - associating each source element and each destination element with an intermediary module for intercepting respective messages; - allowing each source element to transmit an outgoing message only via the associated intermediary module; - processing the outgoing message at the associated intermediary module such that the outgoing message includes a header allowing for unambiguous identification of the message within the system; - transmitting each message outgoing from the intermediary module to a Recovery Management Unit whereas the transmitting step is transparent to the source element; - registering each message received by the Recovery Management Unit in a database; - providing the message to the intermediary module associated with the destination element; - processing the outgoing message at the intermediary module associated with the destination element such that the outgoing messages will reach the destination element in an order of reception by the intermediary module associated with the destination element; - periodically verifying availability of the destination element by a failure detector associated with the destination element and in case the destination element is available providing the message from the intermediary module associated with the destination element to the destination element. - providing a source element (101, 106, 107); - providing a destination element; - connecting the source element and the destination element by means of a computer connection; - allowing transmission of a message between the source element and the destination element; - associating each source element and each destination element with an intermediary module for intercepting respective messages; - allowing each source element to transmit an outgoing message only via the associated intermediary module; - processing the outgoing message at the associated intermediary module such that the outgoing message includes a header allowing for unambiguous identification of the message within the system; - transmitting each message outgoing from the intermediary module to a Recovery Management Unit whereas the transmitting step is transparent to the source element; - registering each message received by the Recovery Management Unit in a database; - providing the message to the intermediary module associated with the destination element; - processing the outgoing message at the intermediary module associated with the destination element such that the outgoing messages will reach the destination element in an order of reception by the intermediary module associated with the destination element; - periodically verifying availability of the destination element by a failure detector associated with the destination element and in case the destination element is available providing the message from the intermediary module associated with the destination element to the destination element.