ADR-104: unified instrumentation OTLP/X-Ray across four surfaces [Spike-1137]

Story 1137Epic None4 files · +1272/−1

PR #144 · pramaan-io/pramaan-docs · merged 2026-06-10

Why this matters

Three tracing systems, one cold-start budget, zero single source of truth.

What breaks when observability stops being unified

More SDKs is not more observability. It is more weight on the same cold-start.

The fix — One baton, one bib, one phase at a time.

How it flows

sequenceDiagram
  autonumber
  participant lambda as Lambda
  participant sqs as SQS
  participant agent as Agent
  participant frontend as Frontend
  lambda->>lambda: ADOT starts span, holds the traceparent baton
  lambda->>sqs: traceparent + correlation_id as message attributes
  sqs->>agent: Agent picks up baton, resumes the span
  agent->>agent: Logs the bib number (correlation_id) on every line
  frontend-->>lambda: Frontend sends traceparent header — Phase A minimal bridge

Files changed (4)

File±
docs/decisions/adrs/ADR-060-frontend-observability-contract.md+1
docs/decisions/adrs/ADR-104-unified-instrumentation-otlp-xray.md ★+1210
docs/decisions/adrs/ADR-REGISTRY.md ★+2 −1
docs/decisions/adrs/adr-registry.json ★+59