public ICompletionCallback Route(IMessage message, PeerId peerName)
{
var callback = new DefaultCompletionCallback();
var sequence = _ringBuffer.Next();
var data = _ringBuffer[sequence];
data.MessageTargetHandlerData.Message = message;
data.MessageTargetHandlerData.Callback = callback;
data.MessageTargetHandlerData.TargetPeer = peerName;
data.MessageTargetHandlerData.IsAcknowledgement = false;
data.NetworkSenderData.WireMessages = new List<WireSendingMessage>(2);
_ringBuffer.Publish(sequence);
return callback;
}