Skip to content

Commit 85174d3

Browse files
authored
Merge pull request #23 from modern-python/feat/v0.4-bulkhead
feat: Bulkhead middleware (0.4.0 slice 2)
2 parents 0ae8d51 + 1af3889 commit 85174d3

12 files changed

Lines changed: 1672 additions & 14 deletions

File tree

planning/engineering.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ Post-pivot, the roadmap has three categories. Topic slugs in `planning/specs/` a
123123

124124
- **Epic 3 — Resilience:**
125125
- **Shipped in v0.4 slice 1:** `Retry` middleware + Finagle-style `RetryBudget` token bucket + `attempt_timeout=` parameter (folded-in 3-1). See [`planning/specs/2026-06-05-retry-and-retry-budget-design.md`](specs/2026-06-05-retry-and-retry-budget-design.md) and [`planning/plans/2026-06-05-retry-and-retry-budget-plan.md`](plans/2026-06-05-retry-and-retry-budget-plan.md).
126-
- **Remaining:** `3-5` `Bulkhead`, `3-6` extension-slot docs.
126+
- **Shipped in v0.4 slice 2:** `Bulkhead` middleware (concurrency limiter via `asyncio.Semaphore` with bounded acquire wait). See [`planning/specs/2026-06-05-bulkhead-design.md`](specs/2026-06-05-bulkhead-design.md) and [`planning/plans/2026-06-05-bulkhead-plan.md`](plans/2026-06-05-bulkhead-plan.md).
127+
- **Remaining:** `3-6` extension-slot docs.
127128
- **Epic 4 — Streaming:** `4-3` `AsyncClient.stream` context manager (forwards to `httpx2.AsyncClient.stream`; no `StreamResponse` type).
128129
- **Epic 5 — Observability:** `5-1` Layer 1 middleware hooks, `5-2` wire into resilience middlewares, `5-4` OpenTelemetry middleware (`otel` extra), `5-5` logging policy CI grep.
129130
- **Epic 6 — Ship v1.0:** `6-2` docs site (`mkdocs`), `6-3` benchmarks, `6-5` release flow (Trusted Publishers + Sigstore).

0 commit comments

Comments
 (0)