2024
Chaos Mode
Finding & Fixing Race
Conditions
Forbes Lindesay
User Frontend Backend
User Frontend Backend
Types:
“Hello”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
Chaos Mode
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
⌛
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
⌛
Make it work
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
Make it fast
User Frontend Backend
User Frontend Backend
Types:
“Hello”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Types:
“ World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Types:
“ World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
User Frontend Backend
Types:
“Hello”
Searches:
“Hello”
Responds with results for:
“Hello”
Renders with results for:
“Hello”
Types:
“ World”
Searches:
“Hello World”
Responds with results for:
“Hello World”
Renders with results for:
“Hello World”
Key Points
• You cannot assume async requests take a constant amount of time.
• Debouncing does not solve race conditions, at best it can hide the issue.
• Use randomised delays to
fi
nd race conditions in development.
• Use external stores to handle potential race conditions outside of React.
Chaos Mode - Finding & fixing race conditions
Chaos Mode - Finding & fixing race conditions
Chaos Mode - Finding & fixing race conditions

Chaos Mode - Finding & fixing race conditions