Skip to main content

Routing and usage evidence

Lasso keeps the default response compatible with JSON-RPC. Evidence comes from baseline response headers, opt-in metadata, the dashboard, and server-side telemetry; those surfaces have different retention and audience boundaries.

Baseline headers

Operational fallback between system profiles preserves the authorized service profile’s x-lasso-profile identity. Internal routing metadata can separately describe the attempt that served the request.

Opt-in metadata

Use ?include_meta=headers or X-Lasso-Include-Meta: headers to preserve the JSON-RPC body and receive:
  • x-lasso-request-id;
  • x-lasso-meta, a base64url-encoded JSON routing record when it fits within the header limit.
Use include_meta=body only when the client accepts a changed response shape. That mode adds a top-level lasso_meta object; it does not add x-lasso-meta. The metadata record exposes the request ID, strategy, chain, transport, candidate and selected providers, selection/upstream/end-to-end latency, Lasso overhead, retry count, and circuit state when those fields are available. service_profile_id identifies the original service profile; profile_id identifies the effective route, including configured fallback. executed_channel is present only when an upstream served the request. With Block regression protection On, provider-backed block choices include head_policy.policy=local, the application generation, captured floor and recovery evidence. Existing strict configurations can return retained block choices with head_policy.policy=global and no executing provider. Client metadata does not include per-attempt error details. Treat the live OpenAPI response and actual record as authoritative because optional fields depend on the request path and outcome. WebSocket callers can add "lasso_meta":"notify" to a JSON-RPC request to ask for a follow-up lasso_meta notification.

Block protection metadata

These optional fields help diagnose Block regression protection. They are not required to enable protection or read several values at one block. When head_policy.policy is local, a protected latest-block response can include: Compare nonoverlapping requests within the same service profile, chain, instance and generation to assess local protection. These fields do not prove that a particular number of peers received an update or predict recovery time. Existing strict policies report policy=global and can include attributed chain-change observations. Their retained number/header responses have no executing upstream provider. Explicit-number/hash requests can legitimately have no head_policy object. State-read results do not independently attest which block the provider used to execute them. For correlation, use x-lasso-request-id, or x-request-id when no routing context was created. Both profile identity fields are opaque. HTTP batch headers expose only one item’s routing context. Oversized metadata can be omitted. If complete per-request diagnostics are required, use individual HTTP requests and record missing metadata explicitly; this is a diagnostics choice, not a requirement for consistent reads.

Operational workflow

  1. Capture the request ID at the client boundary.
  2. Compare the requested route with x-lasso-profile and, when present, x-lasso-effective-strategy.
  3. Decode opt-in metadata to identify the serving provider, transport, latency, and retry count.
  4. Check the dashboard’s regional provider state and recent activity.
  5. Correlate the request ID with application and service telemetry for a durable incident record.
The dashboard’s recent activity is a bounded live presentation stream, not a durable request ledger. A connected LiveView receives relevant PubSub updates; the RPC request hot path does not render dashboard state or query Postgres for each viewer.

Common status signals