See it here.
Specially at integration projects, such the one that I'm now, these problems are recurrent. The one that I struggle EVERY SINGLE DAY is right the first one: "The network is reliable". What a common mistake!!!
Now I fully understand why Tiago requested me to implement a retry system :)
You may wonder why develop a retry system and not use the retry options on each send port in the BizTalk.... Well, because it simply doesn't work the way we wanted to. We wanted a retry implementation that made available to the user a way to configure it to retry the message forever (it's unacceptable to lost messages), or to configure it to retry during a specific amount of time (not less than one day) and, like the options of the BizTalk send port, retry the message X times. Another difference is that instead of a linear scale, like in the BizTalk, the time space between the retries is logarithmic.
With this in mind we simply don't trust the network reliability but, in other end, we're sure that we won't lost any messages.
P.S.: Oohh and DiffMerge rocks ;)