Tracks active retry state and backoff windows for fundamentals ingestion failures.
One active failure row per provider_listing_id; no row means the listing is
not currently blocked by a fundamentals fetch failure.
- Snapshot source:
data/pyvalue.dbon2026-07-28 - Row count:
0 - Table size:
4,096 bytes(4.0 KiB) - Approximate bytes per row:
0.0
| Column | Type | Null | Key | Notes |
|---|---|---|---|---|
provider_listing_id |
INTEGER |
no | PK, FK | provider listing identity |
failed_at |
TEXT |
no | latest failure timestamp | |
error |
TEXT |
no | latest provider error | |
next_eligible_at |
TEXT |
no | idx | retry/backoff watermark |
attempts |
INTEGER |
no | retry counter, always positive |
- Primary key:
provider_listing_id - Physical foreign keys:
provider_listing_id->provider_listing.provider_listing_id
- Physical references from other tables: none
- Unique constraints beyond the primary key: none
- Main logical refs:
provider_listing_idinprovider_listing
- None beyond the primary key and unique constraints.
- active backoff filtering for ingest planning
- progress and recent-failure reporting
ingest-fundamentals- retry/backoff updates
- successful raw upserts delete active failure rows
- provider-layer prune: rows die with their
provider_listing— the ticker refresh (removed tickers) and the dropped-venue cascade inrefresh-supported-exchangesdelete them
- Snapshot source:
data/pyvalue.dbon2026-07-28 - Sample window: first
0rows returned by SQLite ordered byprovider_listing_id ASC
[]- Provider and symbol values are resolved through
provider_listing, keeping the state row narrow. - Successful fetch progress is derived from
fundamentals_raw, not duplicated here.