       @balance()
 
     conn.on NSQDConnection.FINISHED, =>
-      @backoffTimer.success()
-
-      unless @isPaused()
-        if @isLowRdy()
-          # Balance the RDY count amoung existing connections given the low RDY
-          # condition.
-          @balance()
-        else
-          # Restore RDY count for connection to the connection max.
-          connectionRdy.bump()
-
-      @raise 'success'
+      @raise 'success', connectionRdy
 
     conn.on NSQDConnection.REQUEUED, =>
       # Since there isn't a guaranteed order for the REQUEUED and BACKOFF

    @balance()

  backoff: ->
    @backoffTimer.failure()

    conn.backoff() for conn in @connections
    clearTimeout @backoffId if @backoffId

    onTimeout = =>
      @raise 'try'

    # Convert from the BigNumber representation to Number.
    delay = new Number(@backoffTimer.getInterval().valueOf()) * 1000
    @backoffId = setTimeout onTimeout, delay

  inFlight: ->
    add = (previous, conn) ->


    BACKOFF:
      Enter: ->
        @backoffTimer.failure()
        @backoff()
      backoff: ->
        @backoffTimer.failure()
        @backoff()
      success: ->       # No-op
      try: ->
