Industrial inspection findings reach the lead without internet

A controlled two-phone demo connects defect capture to an on-site lead response, then reconciles both phones with a test backend

An inspector and a nearby maintenance lead use phones beside pump P-17, with an integrated inspection interface showing local capture, lead review, and pending backend synchronization.

Problem

Saving an inspection offline preserves the form, but the next person may still be waiting for it. An inspector finds seepage at a pump seal; the maintenance lead is nearby, yet cannot review the finding in the application until a phone reconnects. The team falls back to a conversation, a separate message, or a later handover. The missing step is local action on the finding while the site is still disconnected.

Solution

The controlled demo uses the Offline Protocol Mesh SDK1 to connect an inspector's phone and a lead's phone over a qualified nearby transport. The inspector saves the defect locally; the lead receives it, acknowledges it, and takes ownership of a follow-up without internet access. That authored response returns to the inspector. Both phones retain the finding and review events, then submit the same event identities to a test backend when connectivity returns.

Outcome

The result to demonstrate is a completed human handoff before cloud synchronization: the inspector knows the lead has reviewed the defect and owns the next step. The test checks that this exchange survives a lost receipt and that uploads from both phones produce one finding and one lead review. Physical-device measurements are pending; the protocol below defines the evidence needed to publish the result.

A finding becomes somebody else's next action

The demo follows one asset, two people, and one defect. The inspector selects pump P-17, records a seal inspection finding, and saves it. A locally committed record appears immediately on that phone. The lead's phone must receive the finding while both devices remain unable to reach the backend.

Nearby inspection teamBackend unreachableAsset inspectionLocalPump P-17Seal seepageF-17Finding saved locallyLead acknowledgedFollow-up is assignedReview findingLocalPump P-17Seal seepageReceived nearbyInspector findingSeepage at the sealNext actionCheck seal before restartLead owns follow-upReview saved on this phoneOffline Protocol Mesh SDKAuthenticated local exchangeE1Finding sent to the leadE2Lead review returns locallyReceipt confirms deliveryLead review assigns the next actionInspectorMaintenance leadSaved on the inspector phoneEvent log + outboxSaved on the lead phoneEvent log + outbox
Nearby inspection teamBackend unreachableAsset inspectionLocalPump P-17Seal seepageF-17Finding saved locallyLead acknowledgedFollow-up is assignedReview findingLocalPump P-17Seal seepageReceived nearbyInspector findingSeepage at the sealNext actionCheck seal before restartLead owns follow-upReview saved on this phoneF-17E2InspectorMaintenance leadLocal persistenceEvent log + outboxLocal persistenceEvent log + outboxOffline Protocol Mesh SDKFinding out, authored review back
01 / A lead response before cloud synchronization

The lead opens the finding and selects Acknowledge and take ownership, with a next-action note such as “Check seal before restart.” This creates a separate review event referencing the original finding. The inspector's screen advances only after that event arrives and is committed. A transport acknowledgment establishes delivery; the lead's review establishes that a person acted on the record.

The action is a recorded maintenance follow-up. Equipment operation, isolation procedures, repair approval, and any existing work-order authority remain outside the demo.

Two local commits before either cloud upload

OfflineID2 identifies the enrolled participants, and Messaging Layer Security3 protects their exchange. The local application validates the inspector and lead roles. Discovery finds the nearby endpoint; the SDK supplies delivery tracking and retries.4 Automatic transport selection through the Dynamic Offline Relay Switch (DORS) is recorded, while the baseline run permits only the nominated nearby transport so the result is attributable to that path.

InspectorLead01Persist the findingInspector commits E102Confirm deliveryLead commits E103Act on the findingLead authors E2E1: findingReceipt after receiver commitLead accepts ownershipNext action saved as E2E2: authored reviewMeasure delivery and human response separately
InspectorLeadE1: findingReceipt after receiver commitLead accepts ownershipNext action saved as E2E2: authored reviewMeasure delivery and human response separately
02 / Separate delivery confirmation from human action

Each phone owns a durable event log and application outbox. Creating a finding commits its event and outbox entry together. Receiving a new event commits the event ID and local projection before returning an application receipt. The lead's response follows the same rules. A lost receipt resends the original event, so the receiving application can return its existing outcome.

The native composition uses offline-protocol, offline-protocol-core, offline-protocol-transport, offline-protocol-router, offline-protocol-reliability, and offline-protocol-mls, with offline-protocol-uniffi or the supported native bridge. The initial record has two authored event types, finding_created and finding_reviewed; it does not require a shared editable document to decide who owns the follow-up.

Both phones upload, one finding remains

Each event carries a run ID, event ID, finding ID, author identity, payload hash, and schema version. The lead review also names its parent finding event. Uploading a peer's event preserves that original author and identity. It does not create a new event for the forwarding phone.

Retained phone copiesTest backendInspector phoneE1Inspector findingE2Lead reviewLead phoneE1Inspector findingE2Lead reviewConnectivity restoredSame event IDsUnique keyrun_id + event_idTest backendEvent ledger2 unique eventsE1Finding createdE2Lead reviewF-17Pump P-17Seal seepageLead owns follow-upCheck seal before restartExpected result: 2 unique events, 1 finding, 1 lead review
Phone copiesConnectivity restoredInspectorE1Inspector findingE2Lead reviewLeadE1Inspector findingE2Lead reviewDeduplicate by original identityrun_id + event_idTest backendEvent ledger2 unique eventsE1Finding createdE2Lead reviewF-17Pump P-17Seal seepageLead owns follow-upCheck seal before restartExpected: one finding and one lead reviewRepeated uploads add no extra records
03 / Two uploads, one finding and one lead review

The test recipient uses a unique key on run ID and event ID. Identical replay returns the prior commit receipt; an ID reused with different content raises a conflict. If the review arrives before its finding, the backend retains it as a pending dependency and builds the complete finding view after the parent arrives. The phones retire their outbox entries only after the backend confirms the accepted event identities.

The inspection application's database, forms, asset register, and production maintenance system remain separate. The first integration uses a test recipient and synthetic defect record. Photo transfer is a separately measured extension; the baseline finding contains structured text so attachment size cannot obscure the nearby handoff result.

What the controlled run must show

Test status: protocol prepared; two-phone run and measured results pending. The baseline uses two supported phones in the foreground, with Bluetooth enabled and cellular and Wi-Fi disabled. Backend reachability is checked from both devices throughout the offline phase. A separate run can test a store LAN with its WAN blocked; its results must not be combined with the Bluetooth-only run.

Record handset models, OS versions, application and SDK commits, permissions, battery mode, transport configuration, separation, obstructions, payload bytes, and backend build. A screen recording captures both people’s actions and the connectivity checks. Local monotonic timestamps measure round trips on the originating phone; cross-device one-way timings require a documented clock-offset bound.

Publish this measureEvidence and acceptance condition
Nearby deliveryLead commits and displays the finding before either phone regains backend reachability.
Human response during isolationLead records ownership and the inspector displays that review while WAN remains unavailable. Report human decision time separately from transport time.
Receipt recoverySuppress one application receipt after receiver commit; resend the same event ID and confirm one local application record.
Duplicate-free reconciliationAfter both phones upload, require one finding, two distinct authored events, and one lead review. Report upload attempts and deduplicated retries separately.
Order-independent recoveryRestore phones individually and deliver the review before the finding; verify the same final view and no unresolved parent.
Durable retentionRestart each application after local commit and compare event IDs and pending outbox state.
No nearby pathMove peers out of reach or disable the nominated radio. The finding stays pending; it must not be labeled lead-reviewed.

Run the baseline at least 20 times and publish every attempt, including failures, with median and p95 timing only where the sample and timing method support them. Keep restart, lost-receipt, and out-of-range trials separately labeled.

Managed services and expansion

P-17Bring asset context to the inspectorAuthorized history and shared checklistsCapability Exchange + Data Edge SyncMaintenanceF-17 / Pump P-17Seal inspectionReview requiredConnect findings to maintenanceOne work request from an accepted findingHosted Relay + TelemetryLead reviewSupport contractor inspectionsVisit evidence alongside the lead reviewOfflineID + Proof of Location
P-17Bring asset context to the inspectorAuthorized history and shared checklistsCapability Exchange + Data Edge SyncMaintenanceF-17 / Pump P-17Seal inspectionReview requiredConnect findings to maintenanceOne work request from an accepted findingHosted Relay + TelemetryLead reviewSupport contractor inspectionsVisit evidence alongside the lead reviewOfflineID + Proof of Location
04 / Expand the finding into maintenance and contractor services

From one lead to a maintenance team. Capability Exchange5 can expose an authorized asset-history lookup or review request at the site. Shared checklist progress and multiple inspection notes can add Data Edge Sync6, while authored findings and approvals retain their identities. A construction adaptation follows the same human handoff for a snag or trade inspection, with its own acceptance rules.

From the test recipient to maintenance operations. Hosted Relay can carry retained findings to an authenticated maintenance-system adapter. That adapter maps an accepted finding into a work request and records the external reference, avoiding a new work order on every retry. Opt-in managed Telemetry7 adds visibility into delivery failures, queue age, and reconciliation so support can distinguish a coverage issue from an application-ingestion problem.

Contractor inspection evidence. Proof of Location8 can supplement a visit with witnessed presence at an equipped site. The finding, lead review, and existing approval process still establish what was inspected and accepted. A first paid prototype can stay narrow: one customer's existing inspection form, one supported handset pair, one reviewer role, and one maintenance-system adapter, qualified against their actual site conditions.

References

  1. 01Offline Protocol Mesh SDK
  2. 02OfflineID and device identity
  3. 03Messaging Layer Security: RFC 9420
  4. 04Delivery lifecycle and reliability
  5. 05Service discovery and authenticated invocation
  6. 06Data Edge Sync: replicated documents and persistence
  7. 07Runtime telemetry
  8. 08Proof of Location

Bring the failure case. Leave with evidence. One workflow, agreed criteria, 4 to 16 weeks.

Scope an evaluation Read the docs