Droidcon India 2014

Droidcon India’s fourth edition

Solving for two-way data sync

Submitted by Shrivatsa Swadi (@sswadi) on Nov 5, 2014

Section: Versioning - full talks Technical level: Intermediate Status: Shortlisted


Objective -
- Move large document based data across android devices and the web
- Work in poor/no connectivity situations without problems
- Defining and managing performance parameters for a data heavy app


Our work involves syncing up client documentation from the field workforce who may be in poor connectivity zones with their backend offices, data changes could be made either in the field or the office and it needs to be in sync. This talk is about the choices we made, the challenges we faced, and how we resolved them.

Talk would revolve around managing threads, parameters for sync like size of the document, priority. Auditing the data fetched by devices, long polling for changes and conflict resolution.

Speaker bio

I am currently working at Artoo, a financial inclusion focussed startup. Previously worked at Nokia, and Freecharge.



  • Shrivatsa Swadi (@sswadi) Proposer 5 years ago (edited 5 years ago)

    Problem Statement -
    Delivering seamless user experiences across devices and form factors needs user data to be frequently updated without conflicts.
    We have a use case where user enters a large amount of data on mobile devices, and there is a to and fro interaction with a web user.

    Flow -
    - Define the use case mentioned above
    - Note the layers of the stack, Android UI App -> Background Service - > TouchDB -> HTTP -> CouchDB (Server)
    - The problems we have encountered,
    (a) handling threads/tasks for HTTP calls,
    (b) polling frequencies,
    (c) document sizes and data with different priorities blocking each other,
    (d) resolving data conflicts
    (e) managing connectivity issues
    - How we have solved/planning to solve each of these individually

    Takeaways -
    - Exposure to the probable issues when developing data dependent apps
    - Alternative ways of analysing and coming up with solutions for them.

    Note : Will not delve much into the couchDB aspect

Login to leave a comment