Comments 5
Подскажите пожалуйста, где можно подробнее почитать про CRDT?
Просто не до конца понимаю, допустим у нас есть онлайн блокнот (по типу яндексового где собеседования проводят)
И допустим в одной комнате сидят 10 человек с разных устройств и одновременно что-то печатают. Не совсем понимаю как между 10-ю устройствами будет происходить синхронизация
Если мы хотим работать в онлайн режиме через простой блокнот, то это сложно будет реализовать таким способом, поэтому всякие google doc и прочие текстовые редакторы работают через ОТ. В простейшем случае можно представить CRDT как гарантию того, что мы можем разбить объект на такие независимые части, что изменение одной не повлияет на изменение другой. В моем проекте был текстовый редактор, который под капотом работает с немного кастомизированным html. Мы представили каждый элемент dom дерева в нем как независимый элемент и присвоили id. Таким образом, получалось дерево условно независимых объектов.
Тут идеально бы зашёл $mol с использованием crusdb
Там тоже используется crdt
Не очень понял задумку. На уровне бэкенда действительно много готовых решений, библиотек и специализрованых баз данных, но мы не можем перенести эту логику на бэк, тк это приведет к рассинхрону фронтовому. То есть, пока мы будем готовить данные для клиента 1 от клиента 2, клиент 1 уже успеет внести ряд изменений. И тогда проблема становится многослойной. В данном случае конфликты необходимо решать "на месте".
Что я знаю про онлайн редактирование