Compare retries already spent against a fixed budget and choose a retry, hold, or abort action.

Retry Budget Remediation Report

RetryBudgetRemediationReport.java
public class RetryBudgetRemediationReport {
    public static void main(String[] args) {
        int retriesUsed = ;
        int retryBudget = 4;
        int remaining = retryBudget - retriesUsed;
        String action = "retry";

        if (remaining <= 1) {
            action = "hold";
        }
        if (remaining <= 0) {
            action = "abort";
        }

        System.out.println("used=" + retriesUsed + " remaining=" + remaining + " action=" + action);
    }
}
public class RetryBudgetRemediationReport {
    public static void main(String[] args) {
        int retriesUsed = ;
        int retryBudget = 4;
        int remaining = retryBudget - retriesUsed;
        String action = "retry";

        if (remaining <= 1) {
            action = "hold";
        }
        if (remaining <= 0) {
            action = "abort";
        }

        System.out.println("used=" + retriesUsed + " remaining=" + remaining + " action=" + action);
    }
}
public class RetryBudgetRemediationReport {
    public static void main(String[] args) {
        int retriesUsed = ;
        int retryBudget = 4;
        int remaining = retryBudget - retriesUsed;
        String action = "retry";

        if (remaining <= 1) {
            action = "hold";
        }
        if (remaining <= 0) {
            action = "abort";
        }

        System.out.println("used=" + retriesUsed + " remaining=" + remaining + " action=" + action);
    }
}
remaining budget The remaining budget is derived once so each action variant has a single visible driver.