In Zed/CRDTs, these two seem synonymous to me since the OP's article is the first I read about CRDTs that I grasped, or so I thought ;)
Doesn't the whole process assume that whenever any edit is done (insertion/deleteion/un-/redo) that the edit _eventually_ reaches all participants?
So if a single edit is believed to be delivered to all, but actually never made it to a single participant, who resends it? And if it's not resent, then the participants state is inconsistent from now on, no?
So, client that was "offline" can just ask a participant to get the edits from his own last one (aka pull), send out bis own offline edits (push) and resolve from there, I See.
The appeal of CRDTs is:
> 1. The application can update any replica independently, concurrently and without coordinating with other replicas.
Along with some other important points. See https://en.wikipedia.org/wiki/Conflict-free_replicated_data_...
The featured article also talks about this in detail.