Интересная статья про оптимизацию CRDT.
JSON-структуры плохо подходят, когда у вас много событий. Поэтому тут делают бинарное хранилище для лога.
На примере графического редактора, но для текста используется тот же подход.
https://jakelazaroff.com/words/making-crdts-98-percent-more-efficient/