> In the library level we could (and maybe should) implement both (OT and > CRDT). This will only require a hint from the server side (or the > connection starter client) to inform the client's libraries "what to use > this time". Then practice will say what's better. > > ATM we could start with a C library in order to provide a nice free > back-end editor agnostic. Because IMO the most interesting part of this > will be to open emacs to interact with other editors with a free > infrastructure emacs-centric. I’m not sure if it’s easy (or worth the effort) to provide CRDT in an editor-agnostic way from C-level. Seems that the most natural choice is to tag characters with CRDT data structures. Emacs has text property which is very suitable for this, and I’m implementing it in this way as an Elisp library. However, this relies on the particular data structure for buffer/text emacs uses. If implemented as a separate C library, I imagine the CRDT library need to have its own buffer/text data structure and somehow keep in sync with Emacs’ .. doesn’t sound so clean.