Reliable communication.
WHAT TO ALWAYS SET
A timeout.
WHY
A hanging request holds resources and leaves the interface waiting indefinitely.
WHAT TO IMPLEMENT
Retry with increasing delay, and a limit Cancellation when a screen is dismissed Deduplication of identical concurrent requests
WHY CANCELLATION
Otherwise responses arrive for screens that no longer exist.
WHAT TO HANDLE DISTINCTLY
No connectivity Timeout Server error Authentication failure Unexpected response format
WHY DISTINCTLY
Each warrants different messaging and different recovery.
WHAT TO SHOW THE USER
That something is happening, if it takes more than a moment What went wrong, in plain language A way to retry
WHAT TO AVOID
Technical error text Silent failure Blocking the entire interface
WHAT TO QUEUE
Actions taken offline, sent when connectivity returns.
WHAT TO MAKE SAFE
Repeating a request, since retries are inevitable.
WHAT TO LOG
Failures, for diagnosis, without personal data.