How would you design an offline-first synchronization mechanism for a mobile application like Housecall Pro’s?