private boolean retry(HttpRequest request, HttpResponse response, int attempt) {
        if (isSuccess(response.code())) {
            logResponse(FINEST, response, request, attempt);
            breaker.success();
            throttler.success();
            return false;
        }

        if (response.code() == 429) { // Throttling; reduce target inflight.
            logResponse(FINER, response, request, attempt);
            throttler.throttled((inflight.get() - delayedCount.get()));
            return true;
        }

        logResponse(FINE, response, request, attempt);
        if (response.code() == 503) { // Hopefully temporary errors.
            breaker.failure(response);
            return retry(request, attempt);
        }

        if (response.code() >= 500) { // Server errors may indicate something wrong with the server.
            breaker.failure(response);
        }

        return false;
    }
Retries throttled requests (429), adjusting the target inflight count, and server unavailable (503).
vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/HttpRequestStrategy.java