Architecture
Application state and receipts
Show users what an offline app has saved, delivered, accepted and synchronized, using separate indicators for each state and clear recovery actions.
Present the workflow state the application can establish. A device being nearby, a message being delivered and a person accepting a task are different observations.
Use separate indicators for locally saved work, peer delivery, application acceptance and backend commit. Keep pending work visible during disconnection. Show expiry, rejection and storage failures with a recovery action.
Use enrolled device labels for people, but retain canonical addresses for verification and routing. A label or username must not replace the device address in a send call.
For shared documents, refresh on durable changes and explain the conflict rules for fields that several people edit. For service calls, show the selected provider and request outcome; a timeout can leave the execution outcome unknown.
Build these states using the handoff pattern, shared documents and service requests.

