Skip to content

Ingestion cron and tiered polling schedule #40

Description

@vdvman1

Question

How does the ingestion cron work, and what is the tiered polling schedule?

Settled going in: ingestion is tiered — the manifest plus the latest article polled often, older articles rarely or never. If-Modified-Since short-circuits re-fetches (Mojang's launcher API is believed to support it — verify). A content hash detects real change. An admin can force a refetch of a specific article. Backfill runs until all history is stored, then the cutover happens. Old articles are believed never to change, but the machinery must handle it if they do.

Decide:

  • Cron topology. How many cron jobs, at what cadences, doing what. Cadence numbers come from the free-tier research.
  • The tiers. What exactly counts as "latest" (the newest entry? every entry since the last release? anything under N days old?) and what the cold tier's cadence is — genuinely never, or a slow sweep.
  • Change detection.If-Modified-Since first, hash second. Confirm Mojang's API actually honours conditional requests; if not, the hash carries the whole load. What is hashed — the raw body, so a processorVersion change is not mistaken for a content change.
  • New version discovery. The manifest is the source of truth for which versions exist. What happens when a version disappears from the manifest?
  • Backfill. One-off script or a cron tier that walks backwards? How is completion detected, and how do we know the corpus is whole before cutover?
  • Failure handling. Mojang returns a 500, or a body that fails Zod parsing. What is stored, what is retried, what alerts. Parse failures are handled here and must never reach a rendered page — that is the premise the ZodError research is testing.
  • Admin manual refetch — how it is triggered and who can trigger it. This is the escape hatch for a stale old article.
  • Gap alerting — the map rejected a request-time fallback, so the cron must be loud when it falls behind rather than silently letting pages 404.
  • What ingestion invalidates. Ingesting a new revision must invalidate the article's Next cache entry and trigger re-anchoring. Name the trigger; the rendering ticket owns the mechanism.

Blocked on the free-tier research and the article schema.

Metadata

Metadata

Assignees

No one assigned

    Labels

    wayfinder:grillingWayfinder ticket: HITL conversation (default type)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions