Simulate flaky networks: timeout via AbortController, retry with exponential backoff, and the stale-response race in search-as-you-type.
Mock request only — no real network. Adjust latency, failure rate, and timeout, then watch each attempt and backoff delay.
Each attempt gets its own AbortSignal from AbortSignal.timeout(ms).
Backoff: base × 2^attempt + jitter.
Type quickly or burst-fire searches. Slow responses can arrive after fast ones and overwrite the UI — unless you abort or ignore by request id.