cc-os/plugins/os-adr/eval-b/fixture/project/docs/adr/0006-dead-letter-deliveries...

979 B

id date status supersedes superseded-by affected-paths affected-components
0006 2026-04-20 Accepted
lib/relay/delivery.rb
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.