Connection-independent work
Previously fetched records remain available through SQLite on mobile and IndexedDB on the web; new results are stored locally without waiting for connectivity.
View tasks and record results offline in supported mobile workflows. Records are sent when connectivity returns, and pending items remain visible in the app.
Daily maintenance, checklists and operational records continue when vessel connectivity slows or disappears. If the system depends on online forms, crews fall back to paper and later duplicate data entry.
Faromo addresses this problem with a layered flow—SQLite on mobile, IndexedDB on the web and a tenant-scoped server event history—not a single “offline” switch. A local save, queued transfer and server result are different states, each with its own control point.
IMO frames ship–shore digital systems around operational resilience and the availability and integrity of data. Faromo turns that context into product architecture that distinguishes local, queued and server-applied states. This mapping is not a regulatory approval.[1][2]
Previously fetched records remain available through SQLite on mobile and IndexedDB on the web; new results are stored locally without waiting for connectivity.
Pending and failed writes remain visible. Mobile photos upload first, and the updated queue payload prevents the same file from being sent again on retry.
The server applies writes within the authenticated company scope; cursor, event state and record-specific replay outcomes are retained for diagnostics and monitoring.
Faromo’s offline behavior varies by client and write path. This matrix describes what each layer stores, when it sends and where its control boundary sits, based on current product behavior.
| Layer | Local record | Transfer trigger | Failure behavior | Control boundary |
|---|---|---|---|---|
NATIVE APP | SQLite cache and an on-device write queue | Reconnect, app foreground or a manual user sync | Retries with increasing delays; the record remains pending or failed. | Coverage is enabled screen by screen and action by action. Duplicate handling for REST replay must be verified per endpoint. |
WEB PWA | IndexedDB query cache and REST write queue | Going online, a 12-second interval or manual sync | The record remains failed after a terminal client error or five attempts. | Authentication and sync endpoints are never queued; local cache and write queue are cleared on logout. |
SYNC EVENT LOG | Append-only server event record and monotonic cursor | Push/pull calls and a per-minute replay worker | The replayed, skipped, conflict or rejected outcome remains in event history. | clientEventId deduplication belongs to the sync event endpoint; it does not automatically cover every general REST write. |
CROSS-DEVICE PULL | Registered device, last cursor and last successful pull time | A 15-second interval, window focus or reconnect | The cursor is retained; the next successful pull refetches affected record groups. | Entity-type and vessel filters apply only to registered devices and supported event types. |
Offline support is not one yes-or-no capability for the entire product. Every critical action must be verified together with read cache, write queue, attachments, retries, conflicts and duplicate-record behavior.
IMO’s resilience, business-continuity and recovery context informs product selection; actual acceptance testing must use the screens and actions the vessel will operate. This list is a technical and operational control gate for the pilot vessel.[1][2]
Do not accept “works offline” as a blanket claim. Complete pilot acceptance against the critical scenarios and record types the vessel will actually use.
Assigned work and required references remain available without connectivity.
Record results, notes, readings and operational data securely on the device.
See pending records with order, status and error reason.
Interrupted transfers resume in a controlled way when connectivity returns.
Retain different replay decisions for maintenance, certificates, incidents and append-only log records in event history.
Monitor a registered device’s last sync, cursor progress and stale-device state.
Native and web clients separate local records from transfer state; device data clears on logout and the server applies writes within the authenticated company scope.
Coverage is verified by client and action. The native app implements local queues for work orders, noon reports, rest hours, drills, incidents, CAPAs, checklists, logbooks, permits to work and related operational flows; the pilot scope should still be confirmed before purchase.
There is no single generic merge rule. The server applies record-specific policy; replayed, skipped, conflict or rejected outcomes remain in event history for diagnostics.
A failed write remains pending or failed in the local queue and can be retried. Pilot acceptance must still test device loss, logout, attachments and lost-server-response scenarios separately.
Yes. Authorized users can monitor a registered device’s last successful pull, last cursor and stale-device state. The count of locally pending records is shown on the device itself.