Deletion Notice Delivery
The Lifecycle
Transitions Explained
Notice rows record obligations for the request, reminders and decision outcomes. The schedule sends due messages; purge work sends completion and failure messages. Accepted or suppressed delivery satisfies the corresponding gate. A failed per-notice send records its error for another attempt.
Failures while preparing recipients can occur before any individual outcome is recorded. Delivery is an external action followed by persistence, so provider acceptance does not guarantee the row was updated.
What Cannot Happen
The due-notice reader excludes delivered and suppressed rows. This selection rule avoids ordinary resending, but it is not a state-machine guard on the outcome writer. A crash or overlapping sends can produce another message before the completed outcome is visible.
Concurrency and Timing
The sender has no exclusive row claim. Unique obligation slots prevent duplicate rows rather than duplicate messages. Schedule notice retries use exponential waits with six retry attempts, then a six-hour revisit; the execution ends after at most one year. Final purge notices have no independent perpetual retry loop.