NServiceBus provides a timeout mechanism. From nservicebus.com:
The RequestTimeout method on the base class tells NServiceBus to send a message to another endpoint which will durably keep time for us ... There's a process that comes with NServiceBus called the Timeout Manager which provides a basic implementation of this functionality.
When time is up, the Timeout Manager sends a message back to the saga causing its Timeout method to be called with the same state object originally passed.
As I see it there is a possibility that the timeout is triggered even though the message has been delivered to the receiver (the reply got stuck somewhere for example).
How do I design my application in such a way that my application will behave correctly regardless if the message made it to the receiver or not.