Keeps this page in sync as the body changes. Pause it any time for a quieter view.
Path /specs/runtime-telemetry-db-precedence
Last refresh never
Spec: Runtime Telemetry DB Precedence
inventory_source local | spec_api /api/spec-registry/runtime-telemetry-db-precedence | registry_updated 2026-04-09T03:10:09.018490Z
potential_value 0.00 | actual_value 1.00 | value_gap 0.00
estimated_cost 0.00 | actual_cost 1.00 | cost_gap 1.00
estimated_roi 0.00 | actual_roi 1.00
Missing contributor linkage. Submit a change request with contributor attribution.
Open process view for this spec
task_ids -
branches -
source_files specs/api-request-logging-middleware.md, specs/canonical-route-registry-and-runtime-mapping.md, specs/coherence-algorithm-spec.md, specs/postgresql-migration.md, specs/release-gates.md, specs/runtime-telemetry-db-precedence.md, specs/unified-sqlite-store.md, specs/universal-node-edge-layer.md
evidence_refs -
Open implementation view for this spec
implementation_refs spec-registry:api-request-logging-middleware, spec-registry:canonical-route-registry-and-runtime-mapping, spec-registry:coherence-algorithm-spec, spec-registry:postgresql-migration, spec-registry:release-gates, spec-registry:runtime-telemetry-db-precedence, spec-registry:unified-sqlite-store, spec-registry:universal-node-edge-layer
lineage_ids -
public_endpoints -
summary Ensure production readiness (`GET /api/ready`) does not fail due to runtime telemetry persistence being routed to a JSON file when a database is available, keeping the public deploy contract green.
process_summary When a runtime database URL is configured, runtime telemetry events must be persisted to the database even if `RUNTIME_E; `GET /api/health/persistence` must not fail the global persistence contract due to runtime telemetry being file-routed w; Add a regression test proving DB precedence when both `RUNTIME_DATABASE_URL` and `RUNTIME_EVENTS_PATH` are set.
pseudocode_summary -
implementation_summary api/app/services/telemetry_persistence_service/__init__.py (backend_info(), checkpoint())