پرش به مطلب اصلی

Offline-first Runtime

Gateway نباید با قطع Cloud تبدیل به یک Device غیرقابل‌استفاده شود.

باید ادامه پیدا کند

در صورت وجود Cache/Configuration معتبر:

  • Manufacturer control logic
  • Native bus polling
  • Driver execution
  • Local UI/control
  • Child communication
  • Cached Analyzer execution
  • Local APIهای پشتیبانی‌شده

نباید اتفاق بیفتد

  • Reboot loop به‌خاطر MQTT failure
  • پاک کردن Credential معتبر
  • پاک کردن Child association cache صرفاً به‌خاطر Offline
  • Replay کردن بی‌نهایت Commandهای قدیمی
  • متوقف کردن Bus برای انتظار Cloud

Boot

load local configuration/cache
→ initialize Driver/Bus
→ localRuntimeReady
→ start MQTT/HTTP connection asynchronously
→ sync newer server state when available

localRuntimeReady مستقل از mqttConnected است.

Reconnect

Reconnect باید Subscriptionها را Restore کند، current state/revisions را Sync کند و از Replay کورکورانه Historical commandها خودداری کند.