How would you design a mobile app architecture for offline-first synchronization, conflict resolution, and eventual consistency?