Hacker News Digest

16 августа 2025 г. в 11:41 • figma.com • ⭐ 161 • 💬 53

OriginalHN

#websocket#operational-transformation#figma#webgl#real-time-collaboration#conflict-resolution#caching#encryption

How Figma’s multiplayer technology works (2019)

Как работает технология «мультиплеера» в Figma

Основная идея
Figma позволяет десяткам дизайнеров одновременно работать над одним файлом без конфликтов. Это достигается за счёт оперативной синхронизации изменений и разрешения конфликтов на лету.

Архитектура

  • WebSocket-соединение — каждый клиент держит постоянное соединение с сервером.
  • Операционные преобразования (OT) — любое действие (перемещение слоя, изменение текста) описывается как операция. Сервер применяет её и рассылает всем клиентам.
  • Дельты и патчи — вместо полной передачи файла отправляются только изменения, что экономит трафик и ускоряет работу.

Разрешение конфликтов
Если два пользователя одновременно изменяют один и тот же объект, алгоритм OT выстраивает правильный порядок операций, сохраняя логическую целостность. Пользователи видят результат почти мгновенно.

Производительность

  • Дерево объектов хранится в памяти браузера и обновляется по мере поступления операций.
  • Сжатие и батчинг — несколько операций объединяются в один пакет, чтобы снизить нагрузку на сеть.
  • Кеширование — сервер хранит последние состояния файлов, чтобы быстро «догнать» клиента, который только подключился.

Безопасность и надёжность

  • Все операции логируются и могут быть отменены (undo/redo).
  • Данные шифруются при передаче и хранятся в зашифрованном виде.
  • Регулярные снепшоты защищают от потери данных при сбоях.

Итог
Технология «мультиплеера» превращает Figma в «Google Docs для дизайна», где коллаборация происходит без конфликтов и задержек.