Data pipeline
Durable acquisition, extraction, fusion, validation, and atomic publication.
Errata’s Bun ETL adapts the durable control-plane pattern used by Gridstate while keeping hardware truth in immutable artifacts and SQLite releases.
Stages
- Acquire — allowlisted HTTPS retrieval with artifact size limits.
- Fingerprint — SHA-256 content addressing and immutable archive paths.
- Extract — selector exports, SVDs, CMSIS headers, open-pin XML, reference manuals, datasheets, application notes, and errata.
- Normalize — source-native claims become canonical offsets, bit fields, measurements, pin functions, conditions, limitations, and workarounds.
- Fuse — independent witnesses agree or a reviewed conflict resolution is required.
- Validate — impossible or target-incompatible mappings are blocked.
- Stage — candidates, decisions, sources, and served facts are written to release-specific SQLite.
- QA — integrity, foreign keys, source freshness, release policy, counts, and drift gates.
- Benchmark — deterministic questions must all pass.
- Publish — immutable objects and restart baseline upload and verify before pointers advance.
Durable control plane
Production uses a private Supabase Postgres schema for job state. Workers claim jobs with FOR UPDATE SKIP LOCKED, fence writes with a UUID lease, heartbeat checkpoints, retry with bounded exponential backoff, and retain exhausted jobs as dead_letter.
Supabase stores durable orchestration state; it is not the hardware truth store. Railway runs the long-lived worker and provides rebuildable scratch. Private object storage holds immutable source and release artifacts.
Replay and verification
# Acquire missing inputs and rebuild the full catalog.
bun run etl:catalog:run
# Rebuild from the immutable local archive with no network dependency.
bun run etl:catalog:replay
# Verify federation, benchmark, and attestation bindings.
bun run etl:catalog:verifyQueue a replay with a permanently bound idempotency key:
bun run etl:catalog:enqueue -- --idempotency-key catalog-replay-YYYYMMDD
bun run etl:worker:once
bun run etl:catalog:verifyFailed runs are quarantined and never advance the current release.