Skip to main content
The runtime exposes diagnostics, a bounded observer stream, and an optional OpenTelemetry package. These surfaces contain no credentials or payloads.

Diagnostics

RuntimeDiagnostics also counts concurrency and byte-budget rejections, response limit and close failures, scheduler and executor overload, telemetry failures, and lifecycle state. Each call returns an immutable snapshot.

Observers

Observers receive operation start/end, attempt start/end, retry-delay, and cancellation events. They run on a dedicated dispatch thread, never the caller or transport thread. The queue holds 1,024 events. When it fills, the runtime drops and counts events instead of slowing a send. A slow or throwing observer cannot change the send result.

OpenTelemetry

Install the isolated bridge package and wire its two explicit adapters:
The metrics observer records exactly these instruments: Metrics use the low-cardinality attributes outcome, error.code, delivery.state, and http.status.class. Tracing emits one repost.send span and one repost.send.attempt child per attempt. The attempt carries http.request.method, repost.retry.attempt, network.protocol.name, and a success status when known. Trace context is propagated with traceparent.

Continue

Testing

Record observer events and deterministic attempt timing.

Frameworks

Parent send spans under inbound request spans.

Reliability

Interpret delivery states and error codes.