CRDT (БД)
Conflict-free Replicated Data Type — тип данных, устроенный так, что параллельные изменения на разных репликах всегда можно автоматически слить в один и тот же результат независимо от порядка. Даёт совместную работу без конфликтов и offline-first без центрального сервера.
Идея: вместо того чтобы обнаруживать и разрешать конфликты постфактум, тип данных строят так, чтобы операция слияния была коммутативной, ассоциативной и идемпотентной — тогда все реплики математически гарантированно сходятся к одному состоянию. Примеры: G-Counter (растущий счётчик), OR-Set (множество с добавлением и удалением) и последовательностные CRDT для текста.
Применяются в совместных редакторах (Figma, Apple Notes; Yjs и Automerge дают редактирование в стиле Google Docs без центрального разрешения конфликтов), в распределённых базах (Riak, Redis Enterprise) и в local-first-приложениях. Компромиссы: больше памяти и метаданных (нужно хранить историю), и не любая задача укладывается в CRDT. Горячая тема в движении «local-first software».