Parent epic: #3
Objective
Make asynchronous processing resilient to transient and permanent failures.
Scope
- Add bounded retries with backoff.
- Track retry attempts and failure reasons.
- Introduce dead-letter handling for permanently failed work.
- Make retry and recovery operations safe and idempotent.
- Provide reproducible transient-failure and permanent-failure scenarios.
Acceptance criteria
- Transient failures retry within a defined bounded policy.
- Retry attempts and failure reasons are persisted/observable.
- Permanently failed work is routed to a dead-letter path.
- Recovery does not duplicate financial effects.
- Tests cover retry exhaustion and successful recovery.
Out of scope
- Reconciliation
- Settlement
- Fraud rules
Delivery
Implement as a focused PR linked back to #3.
Parent epic: #3
Objective
Make asynchronous processing resilient to transient and permanent failures.
Scope
Acceptance criteria
Out of scope
Delivery
Implement as a focused PR linked back to #3.