     cached = @sequenceNumberCache.get @_snCacheKey(msg.resource)
 
     if cached?
-      Q(cached)
+      Q({sequenceNumber: cached, cached: true})
     else
       @sphere.getLastProcessedSequenceNumber msg.resource
       .then (sn) =>

        .then (lastProcessedSN) =>
          @stats.awaitOrderingRemoved out.message

          if out.message.sequenceNumber is (lastProcessedSN + 1)
            out.sink.onNext out.message
          else if out.message.sequenceNumber <= lastProcessedSN
            @_messageHasLowSequenceNumber out.message
            out.recycleBin.onNext out.message
          else
            out.recycleBin.onNext out.message

          out.sink.onCompleted()
          out.errors.onCompleted()
        .fail (error) =>
          @stats.awaitOrderingRemoved out.message



    _.each toSink, (s) =>
      @stats.awaitOrderingRemoved s.message
      @_doSinkMessage {sequenceNumber: justProcessedMsg.sequenceNumber, cached: true}, s

  checkAvaialbleForProcessingAndLockLocally: (msg) ->
    @isProcessed msg
