elsa-workflows / elsa-workflows/elsa-foundation
Retry, dead-letter, and redrive failed dispatch delivery
- Dominant language
- C#
- Stars
- 5
- Forks
- 1
- Avg merge
- 3h 52m
- Merged PRs (30d)
- 212
Description
## Parent
#674
## What to build
Add the operational failure path for child-start delivery. Host policy retries transient infrastructure failures without adding activity retry inputs. Exhausted fire-and-forget delivery becomes a durable incident and dead letter that authorized operators can redrive with the same dispatch and child identity. Exhausted wait-mode delivery resumes the parent exactly once as DispatchFailed and can never be redriven after the parent handles it.
Covers parent user stories 17, 34, 36–42, and 53.
## Acceptance criteria
- [ ] Transient child-start infrastructure failures are retried according to host policy without creating a new logical child.
- [ ] Child business faults do not trigger infrastructure retry or replacement.
- [ ] Exhausted fire-and-forget delivery transitions the dispatch to DispatchFailed and creates a durable safe incident or dead letter without changing the completed parent.
- [ ] Authenticated runtime APIs expose safe failed-dispatch inspection and permit redrive only for permanently failed fire-and-forget dispatches.
- [ ] Redrive authorization is distinct from lifecycle read authorization.
- [ ] A redrive reuses the original dispatch record, child execution ID, and idempotency identity.
- [ ] Exhausted wait-mode delivery resumes the parent once with DispatchFailed, a safe diagnostic summary, and an incident ID.
- [ ] A wait-mode dispatch that the parent handled as DispatchFailed is permanently abandoned and rejected by the redrive capability.
- [ ] Observability covers delivery attempts, retry scheduling, permanent failure, incident creation, parent failure resumption, and redrive without recording sensitive payloads.
- [ ] Crash and duplicate-delivery tests cover retry exhaustion, dead-letter transition, parent failure resumption, and redrive convergence.
## Blocked by
- #678
- #679
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with parent issue #674 and resolve the blocked prerequisites #678 and #679. Trace the child-start delivery path, host retry policy, runtime APIs, and crash or duplicate-delivery tests described in the acceptance criteria. Done means retry, dead-letter, wait-mode failure resumption, authorization, redrive convergence, and sensitive-data-safe observability are covered by the listed acceptance and failure tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api, backend, distributed-systems, observability, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100