Problem
Provider outages can block transfers or cause stale exchange rates to be mistaken for current quotes.
Objective
Deliver a production-quality improvement to FX adapters, quotes, and transfer pricing that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
- Add bounded cache TTL, provider fallback, freshness metadata, quote versioning, and explicit stale/error policies; prevent stampedes.
Acceptance criteria
- Stale quotes are visible and cannot be used outside policy; fallback behavior is deterministic; quote identity is bound to transfer creation.
Required validation
- Provider failure, expiry, fallback, stampede, and quote-binding 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
Provider outages can block transfers or cause stale exchange rates to be mistaken for current quotes.
Objective
Deliver a production-quality improvement to FX adapters, quotes, and transfer pricing that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
Acceptance criteria
Required validation
PR quality bar
Out of scope