--- id: "0006" date: 2026-04-20 status: Accepted supersedes: superseded-by: affected-paths: [lib/relay/delivery.rb] affected-components: [delivery, retries] --- # 0006 — Dead-letter deliveries that exhaust retries to a JSONL file ## Context A delivery that exhausts its retry attempts was previously just a log line; operators had no way to replay it after the receiver recovered. ## Decision When a delivery fails its final attempt, Delivery appends the URL, payload, and last error as one JSON line to the dead-letter file (deadletter.jsonl). Replay is a manual operator action, not automatic. ## Consequences No delivery is silently lost; the report command can enumerate failures. The file grows without rotation, acceptable at current volume. ## Alternatives rejected Automatic background replay rejected: a recovering receiver would immediately be hit with the full backlog. A database table rejected: the tool has no database and one failure file is greppable.