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

FieldValue
StatusNot executed
TypeBalanced software
Layer / kindWorker · database · failure injection
PriorityP0
GatesA08
Build stepStep-07-Outbox-Worker-Email
DecisionsQ07

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.