Совместное редактирование
Ретрансляция изменений редактора между экземплярами с помощью getSharedStore, инициализация подключающегося редактора из runtimeValue и регистров хранилища, согласование правок, сделанных в один и тот же момент, и отображение курсора, фокуса, выделения и рамки выделения каждого соавтора.
Yjs
Синхронизация элемента <erd-editor> или автономного однорангового хранилища через документ Yjs с помощью @dineug/erd-editor-yjs, инициализация комнаты, показ присутствия через Awareness, редактирование офлайн и сворачивание истории комнаты с помощью вспомогательного процесса сжатия.
Удаленное хранение
Репликация работающего редактора в хранилище без DOM вне основного потока и сериализация документа для хранения.
Схема
Формат документа .erd.json — форма хранения, которую содержит файл, типы TypeScript, константы каждого числового поля и опубликованная JSON Schema.