Skip to content

Commit 4723acd

Browse files
lesnik512claude
andcommitted
docs(planning): reframe CircuitBreaker deferred entry, drop "v2" label
Trip-mode work is done; what remains is a single small surface, not a v2 epic. Split into read-only state (cheap, barely speculative) vs manual control (genuinely YAGNI for a client). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent d48e199 commit 4723acd

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

planning/deferred.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ As of 0.7.0, all planned epics (3, 4, 5, 6) are closed — see the [change Index
88

99
### Resilience
1010

11-
- **CircuitBreaker v2 — manual control + read-only `state`** (`src/httpware/middleware/resilience/circuit_breaker.py`) — 0.13.0 shipped the opt-in **time-based** failure-rate trip mode (`failure_rate_threshold` + `window_seconds` + `minimum_calls`; classic stays default). The one remaining real axis is `force_open`/`force_closed` and a `state` introspection property (Resilience4j's registry, Polly's `StateProvider`/`ManualControl`). Parked as YAGNI in the 0.10.0 audit (decision 4: events-only control surface). Demand-gated; independent of the trip mode.
11+
- **CircuitBreaker — manual control + read-only `state`** (`src/httpware/middleware/resilience/circuit_breaker.py`) — the trip-mode work is done (0.13.0 shipped the opt-in time-based failure-rate mode alongside classic). Two related, unequal pieces remain, both keyed off the 0.10.0 audit's events-only control-surface decision (decision 4):
12+
13+
- **Read-only `state`** — an `OPEN`/`CLOSED`/`HALF_OPEN` introspection property (Resilience4j's registry, Polly's `StateProvider`). Cheap and side-effect-free; useful for health endpoints, dashboards, and tests. Barely speculative — the kind of thing to build when convenient rather than park indefinitely.
14+
- **Manual control**`force_open`/`force_closed` (Polly's `ManualControl`). The genuinely YAGNI half for an HTTP *client* (you'd usually just stop sending requests). Demand-gated.
1215

1316
**Don't regress:** httpware's HTTP-native failure classification (429/4xx = success out of the box) is already ahead of the generic-predicate breakers — preserve it in any v2 work.
1417

0 commit comments

Comments
 (0)