Two pause mechanisms
Schema review and volume backpressure both set lineage
paused in Postgres, but only volume/CB paths send MQTT downlink controls.
Volume thresholds (defaults)
Per lineage, configured in edge replication policy:
When staged count or bytes exceed the max:
- Insert
edge_pending_controlsrow (pause_lineage). - Set lineage
paused. - Publish
integration.edge_ingest_control.requested.v1→ broker deliverssync/ingest/control. - Device ACKs, stops publishing that source_table, buffers durably.
sweepBackpressureResume:
- Sets lineage
active. - Sends
resume_lineagedownlink withserver_watermark.
Device protocol
On pause_lineage
On resume_lineage
Lineage-scoped pause
Pause affects one SQLite table on one device. Other tables on the same device continue syncing. Example:device_state paused for backpressure; order_events still publishes.
Materialization circuit breaker
Separate from volume caps:- After 5 permanent materialization errors, lineage pauses and device receives
pause_lineage. - Operator inspects materialization error on lineage detail.
- Fix binding/DDL/TSDB issue.
- Call
POST .../lineages/{id}/reset-materializationto clear counter and optionally triggerresume_lineage.
x when materialization error section is present.