advanced

Collaborative editor basics

Discuss realtime transport, ordering, conflict resolution, presence, snapshots, and offline merge basics. Объясняйте API, data model, bottlenecks и trade-offs.

Совместный редактор синхронизирует изменения документа в real time, сохраняя намерение при конкурентных правках. Транспорт — WebSocket или WebRTC data channel. Разрешение конфликтов: Operational Transformation (OT), CRDT или last-write-wins для простых полей.

Сервер задаёт порядок операций или сливает состояния CRDT. Периодические snapshot плюс лог операций — восстановление и офлайн replay. Presence показывает курсоры и выделения; права разделяют edit и view.

На интервью: OT против CRDT на высоком уровне, reconnect после разрыва и storage версий документа.

Типовые ошибки: last-write-wins теряет конкурентные правки в rich text; нет compaction лога операций; редактирование бинарных файлов как текста.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • OT или CRDT под модель документа.
  • Real-time транспорт с reconnect sync.
  • Snapshot и история операций для recovery.
  • Presence и права поверх редактора.