Status. Proposed design only. Nothing in this vault is DG client approval. No application, service or test has been executed; every scenario is Not executed. Fees and dates are open.
T35 · Worker duplicates and ambiguous sends reconcile safely
| Field | Value |
|---|---|
| Status | Not executed |
| Type | Balanced software |
| Layer / kind | Worker · database · failure injection |
| Priority | P0 |
| Gates | A08 |
| Build step | Step-07-Outbox-Worker-Email |
| Decisions | Q07 |
Given
Two workers contend for one event-recipient-channel; provider accepts a send but its response is lost.
When
Crash after provider acceptance; expire worker lease; retry and invoke approved reconciliation.
Then / oracle
Unique logical delivery record remains. Processing is at-least-once, not exactly-once email. Reconcile using provider receipt/idempotency where available; otherwise hold for authorised resolution, not blind resend. Attempts and decision are durable.
Evidence required
Worker leases; event-recipient-channel constraint; provider stub receipts; attempt ledger.
Decision dependency (verbatim)
Q07: retry/lease budget, provider capabilities and ambiguous-result resolution owner.
Source: TDD rev 1.3 (PDF); machine-readable in 10-Sources/tdd-bundle/. Back to Scenario-Index · Traceability-Matrix · integration dependencies in Dependency-and-Regression-Table.