public IObservable <Unit> ReceiveAcknowledgement(Stream stream, Message[] messages) { return(Observable.FromAsync(() => stream.ReadExpectedBuffer(Constants.AcknowledgedBuffer)) .Do(acknowledged => { if (!acknowledged) { _store.DeleteIncomingMessages(messages); } _logger.Debug("Acknowledgement received was " + acknowledged); }) .Where(x => x) .Select(x => Unit.Default)); }