Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

RSS scheduling, backoff, and dedupe validation

  • Status: Accepted
  • Date: 2026-02-21
  • Context:
    • ERD_INDEXERS.md requires RSS polling behavior to enforce scheduling jitter, retry backoff, and item deduplication.
    • Existing tests covered claim filtering, successful dedupe insertion, and non-retryable auto-disable, but did not assert retry backoff growth and success scheduling bounds.
    • The Phase 7 checklist item remained open until these behavioral rules were validated.
  • Decision:
    • Extend revaer-data executor tests for RSS apply behavior:
      • Add retryable failure assertions proving exponential backoff progression (60s then 120s), preserved subscription enablement, and persisted error class.
      • Add successful apply scheduling assertions proving next poll is interval-based with bounded jitter (900..=960 seconds).
    • Keep implementation dependency-free (no new crates).
    • Alternatives considered:
      • Mark checklist complete based on procedure inspection only: rejected because behavior needs executable regression checks.
      • Add only migration-level SQL tests: rejected because data-layer API contract could still drift.
  • Consequences:
    • Positive outcomes:
      • RSS retry cadence and schedule jitter are now validated at the Rust data-access boundary.
      • ERD behavioral requirements for scheduling/backoff/dedupe have concrete regression coverage.
    • Risks or trade-offs:
      • Tests rely on time windows and may need updates if ERD cadence constants change.
  • Follow-up:
    • Implementation tasks:
      • Mark Phase 7 RSS scheduling/backoff/dedupe checklist item complete.
      • Continue with the next unchecked ERD indexer implementation item.
    • Review checkpoints:
      • just ci
      • just ui-e2e