Skip to content

feat(resilience): @retry jitter + CB failure-rate window & half-open tuning (v26.06.43)#70

Merged
ancongui merged 1 commit into
mainfrom
feat/resilience-tuning
Jun 7, 2026
Merged

feat(resilience): @retry jitter + CB failure-rate window & half-open tuning (v26.06.43)#70
ancongui merged 1 commit into
mainfrom
feat/resilience-tuning

Conversation

@ancongui
Copy link
Copy Markdown
Contributor

@ancongui ancongui commented Jun 7, 2026

Completes the v26.06.36 resilience decorators toward Resilience4j parity: @retry(jitter) (randomization fraction ±jitter·wait, anti thundering-herd); CircuitBreaker(failure_rate_threshold, window_size) (open on failure rate over the last N calls — COUNT_BASED window); CircuitBreaker(half_open_max_calls) (N trial successes to close, any failure re-opens). Back-compat: consecutive-failure behavior unchanged when new options unset. Tests (4) + 6 existing green. Gates: mypy --strict (619), ruff+format, full suite 3829.

… & half-open tuning + bump v26.06.43

Completes v26.06.36 toward Resilience4j parity:
- @Retry(jitter): randomization fraction +/- jitter*wait on each backoff (anti thundering-herd).
- CircuitBreaker(failure_rate_threshold, window_size): open on failure RATE over the last N calls
  (COUNT_BASED window) vs consecutive failures.
- CircuitBreaker(half_open_max_calls): N trial calls in HALF_OPEN; that many successes close, any
  failure re-opens.
Back-compat: consecutive-failure behavior unchanged when new options unset.

Tests: tests/resilience/test_resilience_tuning.py (4). Gates: mypy --strict (619), ruff + format,
full suite 3829 passed.
@ancongui ancongui merged commit 8b2ca0a into main Jun 7, 2026
5 checks passed
@ancongui ancongui deleted the feat/resilience-tuning branch June 7, 2026 11:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant