Редактор текста на CRDT в продакшене

Backend
Зал №1

Состою в команде разработки сервиса совместного редактирования текста, который мы назвали Дельта. Расскажу, какие требования мы к нему предьявили перед разработкой и как их удовлетворили, как у нас реализован алгоритм и почему именно так. А также о том, как сервис работает на клиенте, как мы снимаем с него статистику и за какими числами следим в продакшене. Коснусь того, каких ошибок не следует допускать, разрабатывая ещё один свой совместный редактор текста.

У нас есть много контент-сервисов для разных нужд: записи логов встреч, проведения собеседований и другие. Требовалось сделать один встраиваемый редактор текста для всех этих сервисов. При постановке требований обсуждали много параметров, выбирая между plain text и wysiwyg. Обсуждали будущие характеристики масштабируемости, отказоустойчивости, встраиваемости, языки для реализации, сетевой транспорт (от webrtc до лонгполлинга на сервис-воркерах), окно ввода и, конечно, алгоритм. Мы рассмотрели несколько реализаций Conflict free Replicated Data Types и Operational transformation, сделали два прототипа и реализовали один из них.

Презентация

Яндекс

Антон Чапоргин

Руковожу группой, сейчас делаю Яндекс.Коннект. Неидеальный руководитель. Родом из Иркутска. Люблю веб-разработку и давно ей занимаюсь, в разных ролях и разных проектах.

Руковожу группой, сейчас делаю Яндекс.Коннект. Неидеальный руководитель. Родом из Иркутска. Люблю веб-разработку и давно ей занимаюсь, в разных ролях и разных проектах.

Другие спикеры секции Backend: