codemynt
Engineering

Offline-first surveys: the architecture behind SurveyCloud

Field research happens where networks die. A walkthrough of the sync engine, conflict handling and local validation that lets SurveyCloud enumerators work for days offline.

1 min read
SurveyCloud offline survey app module with analytics

Assume the network is gone

SurveyCloud's core design decision is pessimism: the app treats connectivity as a bonus, not a dependency. Survey definitions, validation rules and skip logic all download to the device, so an enumerator in a no-signal basement gets the exact same experience as one on office Wi-Fi.

The response queue

Every completed interview lands in a local queue with a client-generated UUID, a device stamp and a monotonic sequence number. Validation runs locally against the same rules the server enforces, which is what makes sync conflict-free in practice: the server never rejects for content, only deduplicates by UUID.

Sync without drama

When connectivity returns, the queue drains in batches with exponential backoff. Partial batches are fine — each response is independent. Supervisors see data appear on dashboards within seconds of an enumerator reaching signal.

What we learned the hard way

Clock skew on field devices is real (we sign timestamps server-side on arrival), storage pressure matters more than CPU (media compresses before queueing), and the sync indicator is the most-looked-at pixel in the entire app — make it honest.

Continue exploring

Next step

Have a product in mind? Let's build it.

Start a project →