Problem
Concurrent cancel, pause, top-up, and withdraw requests can observe stale state and apply incompatible transitions.
Objective
Deliver a production-quality improvement to stream lifecycle service and persistence that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
- Define an explicit state machine and allowed transitions; use optimistic or pessimistic concurrency control; return version conflicts safely.
Acceptance criteria
- Invalid transitions fail atomically; exactly one concurrent transition wins; clients receive the resulting version and state.
Required validation
- State-machine, race, retry, stale-version, and failure-rollback 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
Concurrent cancel, pause, top-up, and withdraw requests can observe stale state and apply incompatible transitions.
Objective
Deliver a production-quality improvement to stream lifecycle service and persistence that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
Acceptance criteria
Required validation
PR quality bar
Out of scope