Skip to content

docs: retriage ISSUE-101 and ISSUE-102, record the reasoning - #5

Merged
LuxProHub merged 1 commit into
mainfrom
docs/triage-storage-and-queue-issues
Sep 2, 2026
Merged

LuxProHub merged 1 commit into
mainfrom
docs/triage-storage-and-queue-issues

Conversation

@nishchal-gond

Copy link
Copy Markdown
Collaborator

Follow-up to the two Q&A threads — #3 and #4. Writes the conclusions into KNOWN_ISSUES.md so they survive past the discussion threads.

Severity changes

ISSUE-101: Low → High. It is not housekeeping. Day 14 runs API and Worker as separate ECS services, Fargate ephemeral storage is scoped per task, and worker.py re-reads the workbook through SourceFile.stored_path. The worker cannot see files the API wrote — the current layout blocks Day 14 rather than degrading under it. Days 9–12 all assume the worker can read source files, so the Day 4 Storage Adapter needs pulling forward.

ISSUE-102: Medium → Low. Polling costs one indexed SELECT per worker per WORKER_POLL_SECONDS (default 2s). For jobs measured in minutes, 2s of dispatch latency is immaterial. Deferred with explicit re-open triggers rather than closed.

Reasoning recorded

The Day 8 milestone and the worker.py docstring looked like they contradicted each other. They don't — "queue" is two concerns, and SQS can only replace dispatch. The claim (compare-and-set on status == UPLOADED), the heartbeat, reap_stale_jobs() and control_signal all have to stay regardless, and the claim is already the Day 11 idempotency mechanism.

Also captures two things that weren't written down anywhere:

  • The 60-day Glacier lifecycle conflicts with force reprocessing, which re-reads the source file. Past 60 days that's an error pending restore, not a slow read.
  • Presigned uploads remove the API's ability to compute content_sha256, which the duplicate-upload check in jobs.py depends on. x-amz-checksum-sha256 on the PUT keeps it honest; the S3 ETag is not a substitute.

Documentation only — no code or configuration changes.

ISSUE-101 raised Low -> High. It is not housekeeping: Day 14 runs API and
Worker as separate ECS services, Fargate ephemeral storage is per task, and
worker.py re-reads the workbook through SourceFile.stored_path. The worker
cannot see files the API wrote, so the current layout blocks Day 14 outright
rather than degrading. Days 9-12 all assume the worker can read source files,
so the Day 4 Storage Adapter should be pulled forward.

ISSUE-102 lowered Medium -> Low. Polling costs one indexed SELECT per worker
per WORKER_POLL_SECONDS, and 2s of dispatch latency does not matter for jobs
that run for minutes. The Day 8 SQS milestone and the worker.py docstring only
appeared to conflict; splitting "queue" into dispatch and state resolves it,
and the claim, heartbeat, reaper and control_signal all have to stay either
way.

Also records two things that were not written down anywhere: the Glacier
lifecycle conflicts with force-reprocessing, which re-reads the source file,
and presigned uploads remove the API's ability to compute content_sha256,
which the duplicate-upload check depends on.

Documentation only - no code or configuration changes.

Co-authored-by: LuxProHub <304915525+LuxProHub@users.noreply.github.com>
@strix-security

strix-security Bot commented Sep 2, 2026

Copy link
Copy Markdown

Strix is installed on this repository, but we couldn't run this PR security review because this workspace's trial has ended. Add a card to resume code reviews here.

@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
prototype Blocked Blocked Sep 2, 2026 7:08am UTC

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 2, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
prototype 750ad91 Sep 02 2026, 07:09 AM

@LuxProHub
LuxProHub merged commit f2e93e2 into main Sep 2, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants