noCV
QUEUE-110 · Make recovery routine

Collect orphaned preview artifacts without deleting live output

Practice briefTaskAdvanced

A worker writes an artifact then loses its lease before committing the pointer. Storage grows with orphaned previews, but a naive age-based cleanup can delete an output still being committed.

Focused work estimate
3h 30m + prerequisites
Priority in the scenario
Medium
Engineering practice
Object lifecycle · Garbage collection · Race prevention · Recovery

Estimated field mix

  • Storage systems50%
  • Platform engineering30%
  • Distributed systems20%

Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.

Your next step

Review it, then add it to your workspace.

The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.

Project context

A fictional internal document portal creates previews through a trusted mock renderer. Large batches crowd out small teams, failed documents retry forever, and operators lack a safe replay command. This exercise never executes uploaded code or real document macros.

Setup prerequisites

  • Queue semantics
  • Database transactions
  • Operational metrics

Preceding work

Complete these dependencies, or supply their agreed outputs before taking this ticket.

Acceptance criteria

  • Separate temporary attempt artifacts from committed output references.
  • Delete only unreferenced artifacts beyond a documented grace period with no active lease.
  • Make cleanup resumable and record bounded deletion outcomes.

Implementation constraints

  • Use synthetic objects; an artifact listing alone cannot prove an object is unreferenced.

Verification to include

  • Collect an abandoned attempt artifact after its grace period.
  • Race cleanup with a valid completion and prove committed output survives.

Deliverables

  • Orphan collector, race fixture, and dry-run manifest

Rollout and recovery

Review deletion manifests in dry-run mode, then enable cleanup for the synthetic storage prefix only.

Value of the work

For the engineer: Practice asynchronous lifecycle control, fair scheduling, bounded retries, and artifact recovery with a deterministic provider.

For the team: See how an engineer accounts for accepted work and reduces operational toil without granting operators broad data access.

Evidence boundaries

Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.

Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.