Я предполагаю, что под каждым мгновением вы имеете в виду действия пользователя (или нажатия клавиш или что-то еще)?
это зависит от того, какие данные у вас есть здесь.
если у вас есть только текстовые документы, я не вижу причин, почему бы не напрямую взаимодействовать с сервером
но я бы добавил немного времени сна, например:
если пользователь что-то редактирует, установите переключатель в значение edited = true,
если последняя фиксация длилась более 10 секунд назад, подтвердите текущее состояние (возможно, документ изменился за это время, используйте текущее состояние)
установить переключатель последнего коммита на текущее время.
Я думаю, что локальный буфер очень сложен и, вероятно, приносит больше боли, чем его полезный.
однако, если вы решите, что обычный способ сделать это - заполнить буфер на более высокой частоте (но используя метод, описанный выше), и позволить ему передавать на сервер с более низкой частотой (также используя методы выше) , метка времени / приращения передается из первого во второй в третий буфер и т. д.
при восстановлении содержимого из всех буферов или хранилища выполняется выборка и используется последняя версия (с идентификатором приращения из первого буфера).