Skip to main content
Back to Hardware
Edge mode

Work offline

When the network goes down, Cadreen keeps working locally. Operations queue up and sync when the connection returns.

Does Cadreen work offline?

Yes. When the cloud connection drops, Cadreen switches to local mode. Devices keep running, commands keep executing, and sensor data keeps flowing. Everything queues up locally.

When the connection returns, Cadreen syncs everything back to the cloud. Your data is never lost.

What connection states exist?

Online

Connected to the cloud. Everything syncs normally.

Offline

No cloud connection. Cadreen works locally. Operations queue up.

Degraded

Partial connection. Some operations may be delayed.

How does sync work?

Operations are queued in a local SQLite database on the edge device. When the connection returns, they're replayed to the cloud in order.

If there's a conflict (both edge and cloud changed the same thing), the cloud wins by default. You can review and resolve conflicts manually.

Edge DeviceSpatial StoreTelemetry StoreBlackboardOffline Sync Queuebuffers when disconnectedLamport ClockCloudSpatial StoreTelemetry StoreBlackboard

How edge devices sync with the cloud, even offline

What if there's a conflict?

Cadreen detects when the same data was modified on both edge and cloud. By default, the cloud version wins. You can view conflicts through the API and choose which version to keep.

How do I check sync status?

GET/api/v1/cadreen/devices/sync/status

Check if Cadreen is online and how latency looks.

Response
{
"connected": true,
"state": "online",
"latency": 42
}

Example

Example
curl http://localhost:8080/api/v1/cadreen/devices/sync/status
GET/api/v1/cadreen/devices/sync/pending

See how many operations are waiting to sync.

Response
{
"pending": 12,
"conflicts": 0,
"message": "What's waiting to sync"
}

Example

Example
curl http://localhost:8080/api/v1/cadreen/devices/sync/pending
GET/api/v1/cadreen/devices/sync/conflicts

Check for sync conflicts between edge and cloud.

Response
{
"conflicts": [
{
"key": "device:robot-1:pose",
"category": "state",
"edge": {"x": 1.0, "y": 2.0},
"cloud": {"x": 0.5, "y": 1.5}
}
],
"total": 1
}

Example

Example
curl http://localhost:8080/api/v1/cadreen/devices/sync/conflicts?hours=24
GET/api/v1/cadreen/devices/blackboard

Read the shared state between edge and cloud. This shows what Cadreen knows across all devices.

Response
{
"entries": [
{
"key": "device:robot-1:pose",
"value": {"x": 1.5, "y": 2.0},
"category": "state",
"updated_at": "2026-07-18T10:30:00Z"
}
],
"total": 1,
"message": "What the system knows"
}

Example

Example
curl "http://localhost:8080/api/v1/cadreen/devices/blackboard?category=state&limit=50"