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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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