 
     MAX:
       Enter: ->
+        @balance()
         @bump()
       backoff: ->
         @goto 'BACKOFF'
-      success: ->       # No-op
+      success: (connectionRdy) ->
+        @backoffTimer.success()
+        @onMessageSuccess connectionRdy
       try: ->           # No-op
       pause: ->
         @goto 'PAUSE'

      @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'

    conn.on NSQDConnection.REQUEUED, =>
      # Since there isn't a guaranteed order for the REQUEUED and BACKOFF

        @try()
      backoff: ->
        @goto 'BACKOFF'
      success: (connectionRdy) ->
        @backoffTimer.success()
        @onMessageSuccess connectionRdy
        @goto 'MAX'
      try: ->            # No-op
      pause: ->
