SpecsModelExploreRequirements
SpecsModelExploreRequirements
Local Buffer
Overview
Guide
Schema
Twin streams
Links and Communications
IDproduct.edge.edge_agent.local_buffer
DescriptionPersistent buffer for telemetry during connectivity loss.
Keylocal_buffer
Typecomponent:database
Statusactive
TeamEdge Platform
Owner
edge-platform@iotgateway.example
TechnologiesSQLite, Rust
Tags
Table of contents
Guide
Local Buffer
Data model
Delivery semantics
Notes
Schema
Links and Communications
Requirements

Attributes

buffer_size512MB
retention72h
storeSQLite

Guide

Local Buffer

The Local Buffer is the durability boundary of the gateway. Every reading the Driver Loader produces is committed here before anyone tries to send it. If the network is down, the box reboots, or the cloud is slow, the data waits safely on disk and replays in order.

Storage profile

An embedded SQLite database on the gateway’s local flash. A rolling budget of ~512 MB / 72 hours bounds wear and disk use; once the cloud acknowledges a batch its rows are pruned.

Data model

Three streams share the store: buffered telemetry waiting to go up, outbound commands waiting to be applied locally, and the sync cursors that track what the cloud has acknowledged. The ERD is embedded on the Overview tab.

Delivery semantics

  • Appended with a monotonic seq and marked pending.
  • Published oldest-first; rows move to acked once the cloud confirms.
  • SYNC_CURSOR.acked_seq is the high-water mark used to prune safely.

At-least-once, not exactly-once

On an ungraceful restart the publisher may resend a batch the cloud already saw. That is intentional — the cursor guarantees nothing is lost, and the cloud side is idempotent on message id, so duplicates are harmless.

Notes

  • Writes are batched in a single transaction per poll cycle to limit flash wear.
  • captured_at preserves the original device time even if publish is delayed by hours, so cloud-side ordering stays correct.

Schema

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
100%

Links and Communications

1 incoming link · 1 outgoing link

Incoming Links(1)

Source objectLabelLink typeRelationRaw idRequiredDescription
MQTT Publisher

example-iot.product.edge.edge_agent.mqtt_publisher

component
drains batches from—linksproduct.edge.edge_agent.local_buffer——

Outgoing Links(1)

Target objectLabelLink typeRelationRaw idRequiredDescription
Driver Loader

example-iot.product.edge.edge_agent.driver_loader

component
buffers output from—linksproduct.edge.edge_agent.driver_loader——

Requirements