All field notes
Mobile Apps88 signal · Olive harvest and labour pressures

Offline Harvest Logs: Resolve Conflicts When Crews Sync

When several workers record harvest activity offline, a sync should preserve each valid entry, flag real disagreements and show supervisors what still needs review.

OSIS Engineering
October 5, 2026 · 6 min read

Harvest records may be captured in orchards, fields or other places with unreliable connectivity. When several workers share a task, they can also record the same load, update a quantity independently or correct an entry while offline. The app therefore needs more than a retry button: it needs rules for identifying records, preserving ownership and resolving genuine disagreement. Google Trends MA’s 24-hour signal includes reporting about olive harvesting, labour costs and labour availability in Morocco. That is context for a plausible field workflow, not evidence that a particular farm app exists. This guide explains how to scope a dependable offline harvest log and make sync status understandable to workers and supervisors.

01 / 03

Start with record identity and ownership

Give every offline-created record a stable, unique identifier on the device, before it reaches the server. A retry after a dropped connection must send the same identifier, not create another harvest entry. Store who created the record, which device created it, when it was captured and which field, task or load it concerns. Keep the capture time distinct from the server’s receipt time: the first describes the worker’s recorded event, while the second helps operations understand synchronization. These fields make duplicates detectable and provide the context needed to review a disagreement without relying on an unreliable last-write-wins rule.

Define ownership according to the work, not merely the device that synced first. A worker may own an entry they created, while a supervisor may be authorised to approve corrections or close a task. For shared records, identify whether workers are contributing separate observations or editing one common total. Those are different data models: separate observations can usually coexist, but a shared quantity may require reconciliation. Specify who can change each field, whether a correction creates a revision, and how the app records the reason. Clear rules reduce accidental overwrites and give the team a usable audit trail.

  • Assign a client-generated record ID and retain it across every retry.
  • Capture worker, device, task, event time and server receipt time separately.
  • Document who may create, amend, approve and close each record type.
02 / 03

Choose conflict rules for each kind of data

Avoid one universal merge policy. If two workers submit different, independently identified baskets or load observations, preserve both and let business rules calculate a total. If they edit the same field on the same record, compare its version or last-known revision with the server version. When the server has changed since the device’s copy, retain both values and raise a conflict rather than silently discarding either. Some fields, such as a task status, may have an explicit transition rule; others, such as a measured quantity, may need human review. The right decision depends on what the value represents and the cost of getting it wrong.

For a hypothetical example, two workers go offline while recording loads against the same harvest task. Worker A records load 17; worker B records load 18. If these are separate loads, both entries should be accepted with distinct IDs, even if they sync in the opposite order. If both workers instead edit the task’s single total, adding the numbers together would be incorrect. The app should preserve each submitted value, mark the total as needing review and let an authorised person choose or enter the correct figure. The design should state whether that decision keeps the original entries and records who resolved the conflict.

  • Use idempotent retries to prevent duplicate submissions.
  • Merge independent events; review competing edits to the same fact.
  • Do not treat a newer device timestamp as automatic proof that a value is correct.
03 / 03

Make sync visible and scope the right MVP

Workers need to see whether a record is saved locally, waiting to upload, accepted by the server or blocked for review. Show the status beside the relevant entry, with a plain-language explanation and a safe next step. A pending record should remain available after the app closes or the device restarts. If sync fails, keep it queued and retry without changing its identifier. If a conflict needs supervisor action, tell the worker whether the entry is still recorded and avoid presenting a disputed total as final. Supervisors need a review queue that shows both versions, their authors and times, and the resolution history.

For an MVP, first map the records, actors, connectivity conditions and downstream systems that the workflow actually needs. Then test duplicate retries, two devices editing one record, separate entries syncing out of order, an app restart with queued work and a supervisor correction followed by a delayed device sync. Decide how the mobile app authenticates users, how long local data remains on a device, and which data must be available offline. Estimate scope around these decisions, integration contracts and operational review—not just screen count. If records feed payroll, inventory or reporting, agree on identifiers and correction semantics with those systems before implementation.

  • Set acceptance criteria for queue persistence, retries, conflict review and audit history.
  • Name the source of truth for each field and the system that receives corrected records.
  • Include weak-network and delayed-sync scenarios in device testing.

A reliable offline harvest log does not resolve every disagreement by choosing the latest value. It distinguishes separate observations from competing edits, preserves authorship and history, and makes unresolved work visible until someone authorised can act. Before building, agree on record identity, ownership, merge rules and downstream integrations; then test retries and out-of-order sync with realistic multi-worker scenarios. The olive-harvest reporting highlighted by Google Trends MA provides timely context for considering this workflow, while the engineering decisions remain useful wherever field teams capture records without dependable connectivity.