Problem
Client retries after provider timeouts can create duplicate streams or withdraw the same accrued amount twice.
Objective
Deliver a production-quality improvement to stream creation, top-up, and withdrawal commands that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
- Require actor-scoped idempotency keys and request fingerprints; persist terminal outcomes; serialize concurrent commands.
Acceptance criteria
- Retries return the original result; conflicting payloads fail; one balance mutation and lifecycle event are produced.
Required validation
- Concurrency, restart, timeout, conflict, and duplicate-provider integration tests.
- Existing tests and CI remain passing.
- Add regression coverage for the original failure mode.
- Do not weaken, delete, or skip unrelated tests to obtain a green build.
PR quality bar
- Keep the PR focused and explain design tradeoffs, compatibility impact, and test evidence.
- Avoid typo-only, documentation-only, cosmetic-only, or unrelated refactor submissions.
Out of scope
- Broad rewrites not required by the acceptance criteria.
- Changes to unrelated services, contracts, or user flows.
Problem
Client retries after provider timeouts can create duplicate streams or withdraw the same accrued amount twice.
Objective
Deliver a production-quality improvement to stream creation, top-up, and withdrawal commands that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
Acceptance criteria
Required validation
PR quality bar
Out of scope