Keeping them in sync is the dragon
One local DB/store for each app. Who is the correct sync?
Or is it first in first out?
As far as I can tell, CRDTs are the correct solution for syncing state between parties.
In my experience there’s always a logical way to solve conflicts. And CRDTs can have any kind of conflict resolution algorithm, so it’s customizable per application. “Storing conflict resolutions”, eg. “a merge operation”, is not needed and unnecessarily complicates any CRDT.