Dead source detection with alerting
Why it matters
A scraper or API integration that stops producing records with no alert will silently starve your pipeline for days. You will not know until someone notices list growth has plateaued or a manual check reveals the last ingest timestamp is a week old. NIST CSF 2.0 DE.CM-1 requires continuous monitoring of system components, which extends to data ingestion pipelines. Without dead-source detection, outages in data acquisition are invisible until they become business-impacting.
Severity rationale
Low because silent failures affect future data acquisition rather than compromising existing records, but they can cause significant operational and business impact over time.
Remediation
Add a scheduled health-check job that queries the maximum acquired_at per source and alerts when any source exceeds its expected silence threshold.
// cron: every hour via cron job or Inngest function
async function checkSourceHealth() {
const stale = await db.query(`
SELECT source_id, MAX(acquired_at) AS last_seen
FROM contacts
GROUP BY source_id
HAVING MAX(acquired_at) < NOW() - INTERVAL '24 hours'
`)
if (stale.rows.length > 0) {
await sendAlert('Dead data sources detected', stale.rows)
}
}
Set the silence threshold per source type — scraping sources may warrant a 6-hour threshold, purchased-list imports a 7-day threshold.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Data Sourcing & Provenance Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- iso-25010:2011 · reliability.availability — Reliability / availability
- nist-csf:2.0 · DE.CM-1 — Networks and network services are monitored to find potentially adverse events
Taxons
History
- 2026-04-18·v1.0.0·Initial import from data-sourcing-provenance·automated