News/Integrations

Connecting a device to its services

An application, cloud services and analytics working together.

A camera, sensor and computing module beside visualizations of an application and cloud service

A camera detects movement, an app shows a notification, and an operator sends a command back. Each participant can lose connectivity at a different moment. A shared event contract makes the sequence recoverable.

Describe the event and its source

Give every event a unique identifier, source, type and observation time. Store server receipt time separately. A module may upload an hour of buffered events after reconnecting. The app can then reconstruct the earlier sequence and show which updates arrived late.

Separate acceptance from execution

When an app asks a device to arm, the server may accept the command before the device applies it. Expose pending, completed and failed states. Reusing a command identifier when retrying lets the receiver avoid performing the same action twice.

Reconnect without duplicating history

On reconnection, the device sends buffered events. The service recognizes identifiers it already has and acknowledges accepted messages. Define what to retain when local storage fills, so a long queue of routine updates cannot displace a critical event.

Exercise the entire chain

Disconnect the network before sending a command, during transmission and immediately after execution. Compare the resulting state on the device, in the service and in the application. Any divergence shows where an acknowledgment, retry or user-facing status is needed.

Device development