DDD.Outbox.DeadLetterPolicy.Default (vicander v0.1.1)

Copy Markdown View Source

The recommended default: keep every dead letter. The failure has already been logged at error level and emitted as a [:ddd, :outbox, :dead_letter] telemetry event, so someone looks at it and replays it by hand (mix vic.outbox.replay).

A dead letter means a handler failed repeatedly, usually because of a bug or bad data, so replaying it automatically before anyone has looked at it mostly repeats the failure. Automatic replay is opt-in, for transient causes such as an outage longer than the retries:

config :vicander, :dead_letters,
  max_replays: 3,             # replay each dead letter at most this many times (default 0)
  replay_cooldown_ms: 60_000  # wait this long after it died before replaying (default 1 min)

After max_replays replays it is kept.