01
The plan under review
A recovery design for a managed background-job platform after a poison-pill object (corrupt gzip) was retried 6,842 times in 74 minutes: the crash-reaper path enforced no max_attempts, autoscaling amplified the storm, and the customer dashboard showed "80% complete" throughout. Five candidate mitigations — durable pre-attempt rows, input fingerprinting, a queue circuit breaker, per-shard UI transparency, crash-path retry policy — with a 12M-user re-run due Friday under a 4-hour contractual window.
Scenario context6,842 retries in 74 minutes on one corrupt object; 26 useless autoscaled pods; billing jobs delayed 41 minutes; a 12M-user re-run against a 4-hour contractual completion window.Figures as stated in the reviewed plan — no inferred savings.
02
What changed before ship
Five candidate mitigations
→
A+E+D floor unanimously non-negotiable: durable pre-attempt rows + fencing tokens, crash-path enforcement, per-shard UI; narrow fingerprinting on the evidence ladder; group circuit breaker deferred
Quarantine-copy for ambiguous objects
→
Streaming digest of bytes already in flight — the zero-infrastructure equivalent, adopted by all three
'Same error class twice' DLQ rule
→
The byte-identity evidence ladder with bad_input / unreadable_input / transient_io terminal states, abort-on-failure, pinned canonical error categories, and the partial-prefix-hash promotion patch
Queue-level circuit breaker (20 failures/5min)
→
ZERO lines of pause code — group needs_attention derives from terminal shard states in the UI layer, flipping on ONE terminal shard
'Import running: 80% complete'
→
Per-shard states with attempt counts, next-retry times, and action buttons (retry shard / cancel / continue without)
Two reaction-vs-prose split-states
→
Both BOUND on the record: bad_input on stable hash regardless of bucket versioning; the one-terminal-shard flip
Depth-driven autoscaling
→
Delayed jobs excluded from scale metrics; ops concurrency ceiling on the import queue for the re-run
04
Decision
Landed invariantVerdict 2-1
Every path that can create another job execution — including crash recovery — passes one retry-policy function with a hard attempt cap; customer-facing bad_input requires proven byte identity, never metadata.
GO carried 2-1 with the dissent preserved, not smoothed: the majority ships with light on-call and cap alerts; the minority's release conditions are on the record as the price of skipping them.