KDS Offline Mode
KDS Offline Mode
Summary
-
Problem: KDS devices (tablets/EPOS) in kitchens often lose network connectivity. When offline, chefs must still mark items as done. If actions fail or are lost, orders get stuck, causing delays and operational errors.
-
Goal: Introduce a robust Offline Mode allowing chefs to continue working without connectivity, while the device safely queues actions and automatically syncs when online. Ensure clarity, data safety, and a smooth workflow.
Why This Matters
-
High availability: Kitchens must operate even with intermittent network failures.
-
Business impact: Prevents delays and missed items; reduces friction between chefs and runners.
-
Operational safety: Maintains order integrity and customer experience during outages.
Key Behaviors (User-Facing)
-
Offline Indicator: Prominent, persistent “Offline” banner when the device loses connectivity.
-
Local Queueing: Actions like item taps, mark-all, recall, and add-item are saved locally.
-
Local-First Updates: UI responds instantly with optimistic updates.
-
Background Sync: Actions auto-sync in correct order when connection returns.
-
Conflict Handling: If server state differs, show conflict UI or auto-merge (configurable).
-
Persistence: Queued actions persist across reloads and restarts (IndexedDB recommended).
-
Diagnostics: "Queued Actions" panel, with retry controls and caps.
-
Safety: Preserve action order; avoid duplicates; protect against corruption.
Proposed UX Flows
A. Offline Discovery
-
When network loss is detected, show:
-
A red/orange “Offline” banner stating actions will be queued.
-
A floating queued-count badge.
-
Optional buttons: “Go Online” (manual attempt) and “Show Queue”.
-
B. Applying Actions While Offline
-
Tapping an item:
-
UI updates immediately (prepared tick/colour).
-
Action is queued with metadata
{action, orderId, itemId, timestamp, deviceId}. -
A clock icon and tooltip indicate: “Queued — will sync when online.”
-
-
If all items are marked prepared, the order still moves to Completed locally.
-
On later sync conflicts, show: “Accept server / Keep local / View conflict.”
C. Sync & Reconciliation
-
When connection returns:
-
Show “Syncing…” banner.
-
Flush queued actions FIFO to the backend.
-
Update UI with canonical server state.
-
Remove successful actions from the queue.
-
Retry failed actions with exponential backoff; surface persistent failures to the user.
-
Rollout & Testing Plan
-
Build prototype → internal QA with controlled offline/online transitions.
-
Pilot in 2–3 real sites with intermittent connectivity.
-
Add server support: idempotency, conflict responses, reconciliation endpoints.
-
Gradual rollout with KPIs monitored.
KPIs to Measure
-
Reduction in orders stuck due to connectivity issues
-
Average queue flush success rate
-
Time from local action → server confirmation
-
Conflict frequency and resolution time
Appendix: Minimal User Flows
Flow 1: Offline Item Tap
-
Tap item → UI shows tick
-
Action added to local queue
-
Offline badge visible
-
Network returns → sync → queue clears → server confirms
Flow 2: Edited Completed Order While Offline
-
New item added → light-orange highlight + “NEW”
-
Action queued
-
When online → sync
-
If server rejects → conflict UI shown

Comments
Post a Comment