Skip to content

Commit 78a9c0f

Browse files
author
committed
Deployed 4a964a9 with MkDocs version: 1.6.1
1 parent 24bfc83 commit 78a9c0f

6 files changed

Lines changed: 7 additions & 7 deletions

File tree

‎errors/index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1087,7 +1087,7 @@ <h2 id="see-also">See also<a class="headerlink" href="#see-also" title="Permanen
10871087
<ul>
10881088
<li><strong><a href="../resilience/">Resilience reference</a></strong> — <code>AsyncRetry</code>, <code>RetryBudget</code>, <code>AsyncBulkhead</code> parameter tables.</li>
10891089
<li><strong><a href="../middleware/">Middleware guide</a></strong> — the <code>@async_on_error</code> decorator can translate exceptions into responses.</li>
1090-
<li><strong><code>planning/engineering.md</code> §4</strong> — the formal exception contract.</li>
1090+
<li><strong><code>architecture/errors.md</code></strong> — the formal exception contract.</li>
10911091
</ul>
10921092

10931093

‎index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,7 @@ <h2 id="where-to-go-next">Where to go next<a class="headerlink" href="#where-to-
10811081
<li><strong><a href="errors/">Errors reference</a></strong> — the full exception tree, catching strategies, <code>exc.response.*</code> access pattern.</li>
10821082
<li><strong><a href="testing/">Testing guide</a></strong> — mock-transport injection pattern for testing code that uses <code>httpware</code>.</li>
10831083
<li><strong><a href="recipes/modern-di/">Recipes</a></strong> — wiring <code>AsyncClient</code> into a <code>modern-di</code> container.</li>
1084-
<li><strong><a href="https://github.com/modern-python/httpware/blob/main/planning/engineering.md">Engineering Notes</a></strong> — design invariants, the three protocol seams, exception contract, module layout, testing patterns, optional-extras pattern. Lives in the repo at <code>planning/engineering.md</code>.</li>
1084+
<li><strong><a href="https://github.com/modern-python/httpware/blob/main/architecture/overview.md">Architecture Notes</a></strong> — per-capability design notes — invariants, the three protocol seams, exception contract, module layout, testing patterns — under <code>architecture/</code>. Lives in the repo under <code>architecture/</code>.</li>
10851085
<li><strong><a href="dev/contributing/">Contributing</a></strong> — setup, conventions, workflow.</li>
10861086
<li><strong><a href="https://github.com/modern-python/httpware/releases">Release notes</a></strong> — per-version changelogs.</li>
10871087
</ul>

‎middleware/index.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -978,7 +978,7 @@ <h2 id="when-not-to-write-a-middleware">When NOT to write a middleware<a class="
978978
<li><strong>Redaction:</strong> Use a <code>logging.Filter</code> on the consumer side. <code>httpware</code> deliberately does no redaction in-library (per the 0.6.0 observability design).</li>
979979
<li><strong>URL or header validation:</strong> <code>httpx2</code> owns it. Don't reimplement.</li>
980980
<li><strong>Per-call behavior that doesn't apply to other calls:</strong> Pass through <code>request.extensions=</code> (or the <code>extensions=</code> kwarg at the call site) instead. Middleware exists for <em>cross-cutting</em> concerns.</li>
981-
<li><strong>HTTP-level span creation for tracing:</strong> Install <code>opentelemetry-instrumentation-httpx</code> instead of writing an OTel middleware in httpware. We retired story <code>5-4</code> (standalone OTel middleware) for this reason — <code>opentelemetry-instrumentation-httpx</code> already covers transport-level tracing, and a separate httpware layer would duplicate it. See <code>planning/engineering.md</code> §8.</li>
981+
<li><strong>HTTP-level span creation for tracing:</strong> Install <code>opentelemetry-instrumentation-httpx</code> instead of writing an OTel middleware in httpware. We retired story <code>5-4</code> (standalone OTel middleware) for this reason — <code>opentelemetry-instrumentation-httpx</code> already covers transport-level tracing, and a separate httpware layer would duplicate it. See <code>architecture/middleware.md</code>.</li>
982982
</ul>
983983
<h2 id="wiring-opentelemetry">Wiring OpenTelemetry<a class="headerlink" href="#wiring-opentelemetry" title="Permanent link">&para;</a></h2>
984984
<p><code>httpware[otel]</code> only ships <code>opentelemetry-api</code>. To make the observability events emitted by <code>AsyncRetry</code> and <code>AsyncBulkhead</code> visible, you also need:</p>
@@ -1049,7 +1049,7 @@ <h2 id="sync-middleware">Sync middleware<a class="headerlink" href="#sync-middle
10491049
<p>Sync and async middleware classes do not interop: a <code>Middleware</code> cannot be passed to <code>AsyncClient(middleware=...)</code> and vice versa. Pick the flavor matching your client.</p>
10501050
<h2 id="see-also">See also<a class="headerlink" href="#see-also" title="Permanent link">&para;</a></h2>
10511051
<ul>
1052-
<li><strong><code>planning/engineering.md</code> §3 (Seam A)</strong> — the formal protocol contract and why the chain is frozen at construction.</li>
1052+
<li><strong><code>architecture/middleware.md</code> (Seam A)</strong> — the formal protocol contract and why the chain is frozen at construction.</li>
10531053
<li><strong><code>src/httpware/middleware/resilience/</code></strong> — <code>AsyncRetry</code>, <code>AsyncBulkhead</code>, <code>RetryBudget</code> as real-world consumers of this exact protocol.</li>
10541054
<li><strong><a href="../#with-resilience-middleware">Quick-Start composition example</a></strong> — composing built-in middleware.</li>
10551055
</ul>

‎resilience/index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1853,7 +1853,7 @@ <h2 id="see-also">See also<a class="headerlink" href="#see-also" title="Permanen
18531853
<li><strong><a href="../middleware/">Middleware guide</a></strong> — write your own resilience middleware against the same protocol <code>AsyncRetry</code> and <code>AsyncBulkhead</code> use.</li>
18541854
<li><strong><a href="../errors/">Errors reference</a></strong> — <code>RetryBudgetExhaustedError</code>, <code>BulkheadFullError</code>, <code>CircuitOpenError</code>, and the broader exception tree.</li>
18551855
<li><strong><a href="../#observability">Observability</a></strong> — the operational events these middleware emit.</li>
1856-
<li><strong><code>planning/engineering.md</code> §3</strong> — the formal Middleware/Seam-A contract.</li>
1856+
<li><strong><code>architecture/middleware.md</code></strong> — the formal Middleware/Seam-A contract.</li>
18571857
</ul>
18581858

18591859

‎search/search_index.json‎

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

‎testing/index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -948,7 +948,7 @@ <h2 id="see-also">See also<a class="headerlink" href="#see-also" title="Permanen
948948
<ul>
949949
<li><strong><a href="../middleware/">Middleware guide</a></strong> — write the middleware you're testing.</li>
950950
<li><strong><a href="../resilience/">Resilience reference</a></strong> — testing <code>AsyncRetry</code>/<code>AsyncBulkhead</code> configurations.</li>
951-
<li><strong><code>planning/engineering.md</code> §6</strong> — the project's own testing patterns (Hypothesis property-based tests, <code>pytest-asyncio</code> auto-mode, the <code>RecordedTransport</code>-was-removed history).</li>
951+
<li><strong><code>architecture/testing.md</code></strong> — the project's own testing patterns (Hypothesis property-based tests, <code>pytest-asyncio</code> auto-mode, the <code>RecordedTransport</code>-was-removed history).</li>
952952
</ul>
953953

954954

0 commit comments

Comments
 (0)