Resilience
Contain crashes to one panel and give every request a time limit. Say when the network is gone, recover from new releases and show flags and environments early.
- Required 1
- Recommended 5
Required
Give every request a time limit
APP-51Give every request from the screen a time limit, say when a request is slow, and retry only reads and requests with an idempotency key.
Recommended
Contain each crash to its panel
APP-50Wrap each route and each independent panel in an error boundary. One broken part then shows a fallback, and the rest keeps working. Report every caught error.
Say when the network is gone
APP-52When the connection drops, say so in a banner and keep everything already loaded on screen. Either queue changes with idempotency keys and send them on reconnect, or block them with a reason.
Recover when a new release replaces the old files
APP-53When a tab still runs the old release and a code chunk fails to load after a deploy, reload once to get the new release. Keep older files online as keep the previous build's assets sets.
Read feature flags before the first paint
APP-49Decide feature flags on the server and send them with the first page or data load. A flagged feature then never flashes in or out. The API checks the same flag.
Show which environment a tool is connected to
APP-80Every screen of an admin or internal tool names its environment, such as Production or Staging, in text at the top of the screen. The page title starts with the same name.
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/app-ui/resilience">Agent Wranglers web app interface playbook</a>. In code you write, add a comment next to it with the same link.