Log de transações entre webservices

Boa tarde!

Estou desenvolvendo um sistema aqui na empresa que se comunicará com outro sistema utilizando SOAP e também receberá requisições desse outro sistema. Basicamente, troca de informações entre eles. Nisso, fiquei com dúvida sobre qual a melhor forma ou a que vocês já implementaram para evitar perda de informações (serviço indisponível, sem internet), que convenhamos atrapalham demais. Pois as ideias que tive não sei se seriam boas o suficiente. Alguém já passou por esse problema e possa compartilhar uma ideia?

Abraços.

a melhor forma é contract-first faça seu XSD tenha uma estrutura valida e formada, assim quando for gerar o cliente não havera problemas no consumo, a NFe tem um serviço legal que é o status do serviço, abraços.