Skip to content

Commit e0a5af4

Browse files
OmarAlJarrahclaude
andcommitted
docs: add the operation-tracing stage to the README pipeline overview
The README architecture diagram, stage-spacing note, policy surface table, and observability summary predated the new outermost operation-tracing stage. - Show OPERATION as the outermost pillar in the request-flow diagram. - List OperationTracingPolicy in the pipeline.policies surface table and the observability feature summary. - Correct the stage-spacing wording (values are spaced out rather than a fixed 100 apart) in both the README and the Stage docstring, now that the operation stage sits at 50. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 901aad3 commit e0a5af4

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,12 @@ the way back up. The terminal policy hands the request to an `HttpClient`
132132
transport.
133133

134134
```
135-
caller → Pipeline → REDIRECT → POST_REDIRECT → RETRY → POST_RETRY → [AUTH] → LOGGING → POST_LOGGING → HttpClient → wire
136-
(pillar) idempotency (pillar) set-date (pillar) (pillar) tracing
137-
client-identity
135+
caller → Pipeline → OPERATION → REDIRECT → POST_REDIRECT → RETRY → POST_RETRY → [AUTH] → LOGGING → POST_LOGGING → HttpClient → wire
136+
(pillar) (pillar) idempotency (pillar) set-date (pillar) (pillar) tracing
137+
client-identity
138138
```
139139

140-
Ordering is governed by `Stage`, an `IntEnum` whose values sit 100 apart so
140+
Ordering is governed by `Stage`, an `IntEnum` whose values are spaced out so
141141
new stages can land without renumbering. Pillar stages admit a single
142142
policy; non-pillar stages stack with deque semantics. Callers who prefer
143143
explicit ordering can still use the list form,
@@ -176,7 +176,7 @@ Bottom-up, the layers are:
176176
| `http.webhooks` | `WebhookVerifier`, `InvalidWebhookSignatureError` — HMAC signature verification with timestamp tolerance |
177177
| `pagination` | `Page`, `Paginator` / `AsyncPaginator`, `PaginationStrategy` (`CursorStrategy`, `PageNumberStrategy`, `LinkHeaderStrategy`) |
178178
| `pipeline` | `Pipeline`, `AsyncPipeline`, `Policy` ABC, `Stage` enum, `StagedPipelineBuilder`, `default_pipeline()` |
179-
| `pipeline.policies` | `RedirectPolicy`, `IdempotencyPolicy`, `RetryPolicy`, `SetDatePolicy`, `ClientIdentityPolicy`, `LoggingPolicy`, `TracingPolicy` (async twins for all but logging/tracing) |
179+
| `pipeline.policies` | `RedirectPolicy`, `IdempotencyPolicy`, `RetryPolicy`, `SetDatePolicy`, `ClientIdentityPolicy`, `LoggingPolicy`, `OperationTracingPolicy`, `TracingPolicy` (async twins for all but logging/tracing) |
180180
| `client` | `HttpClient` and `AsyncHttpClient` Protocols |
181181
| `serde` | `Serde`, `Serializer`, `Deserializer` Protocols + `JsonSerde` reference impl |
182182
| `instrumentation` | `ClientLogger`, `UrlRedactor`, `Tracer`, `Span`, `InstrumentationContext`, `contextvars` correlation helpers, noop singletons |
@@ -205,7 +205,8 @@ Bottom-up, the layers are:
205205
reissue, userinfo dropped from `Location` URLs, configurable allowed
206206
methods and 303 handling.
207207
- **Observability.** Structured logging via `LoggingPolicy`,
208-
OpenTelemetry-compatible spans via `TracingPolicy`, URL redaction with
208+
per-attempt OpenTelemetry spans via `TracingPolicy` with a once-per-call
209+
tracer lifecycle via `OperationTracingPolicy`, URL redaction with
209210
allowlisted query parameters, and capped body capture for diagnostics.
210211
- **Server-Sent Events.** A WHATWG-compliant `SseParser` with a bounded
211212
line buffer, plus reconnecting `SseConnection` / `AsyncSseConnection`

packages/dexpace-sdk-core/src/dexpace/sdk/core/pipeline/stage.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class of bugs where retry runs before redirect or auth runs after logging.
99
1010
Pillar stages admit at most one policy; non-pillar stages stack with
11-
deque semantics. The numeric values are sparse (100 apart) so future
11+
deque semantics. The numeric values are spaced out so future
1212
stages can slot between existing ones without renumbering.
1313
"""
1414

0 commit comments

Comments
 (0)