Been working on offline apps (Android) for the past couple of years. Syncing is hard. Some takes:
- There was never a budget for CRDT's
- Conflicts were never our primary focus, instead our focus were business problems
- Event-sourced arch + offline first app was quite a fun. Basically I've recorded all the events in sequence in SQLite, queued them up when there was a connection and had network retry policy in place + reverting an event locally if retry failed n-th amount of times.
I am no behaviorist expert, but for me, someone who in world of trouble can post tweets as relaxing as Sam's, and do smile poses comes of as extremely manipulative.