Skip to main content

Durable State Management

The DurableDataStoreService bridges the gap between the Durable Functions runtime and the Admin API dashboard by syncing entity state to Table Storage.

Why Sync to Table Storage?​

The Durable Functions runtime stores entity state internally (in the Netherite backend). Querying this state requires the Durable Functions client β€” which isn't available from the Admin API. Table Storage provides a lightweight, queryable mirror of the entity state.

What Gets Synced​

FieldDescription
Device IDCamera identifier
Current ModeSINGLE, PANO, LEASED, or TURBO
StatusOnline/offline
Acquisition RateCurrent capture interval per mode
Last UpdateWhen the entity was last updated

Sync Timing​

The sync happens at the end of each orchestration iteration β€” after images are captured and stored. This ensures the Table Storage data reflects the most recent state.

SignalR Config Broadcast​

When entity state changes (mode transition, status change), the service also broadcasts the current configuration to SignalR via BroadcastCurrentConfigToGroup. This allows the frontend to show real-time mode changes without polling.