elsa-workflows / elsa-workflows/elsa-foundation

Retry, dead-letter, and redrive failed dispatch delivery

Open
#681 0 comments 0 reactions 0 assignees View on GitHub
ready-for-agent
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.