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 и права поверх редактора.