Skip to main content

Internals

CRDT Paperโ€‹

Yjs is a CRDT implementation. It implements an adaptation of the YATA CRDT with improved runtime performance.

Implementation Detailsโ€‹

Choosing efficient data structures is critical when implementing a CRDT. The following document gives an overview of the data structures used in Yjs.

yjs/INTERNALS.md at main ยท yjs/yjs - Logo
yjs/INTERNALS.md at main ยท yjs/yjs
Shared data types for building collaborative software - yjs/INTERNALS.md at main ยท yjs/yjs

Internals Visualizationโ€‹

Visualization of different CRDT algorithms (including Yjs/YATA and Automerge/RGA).

Optimizations Overviewโ€‹

JavaScript manages memory automatically using a garbage collection approach. Yjs is a particularly efficient implementation of the YATA CRDT that works well in the browser and in NodeJS. This article analyzes the performance of Yjs in JavaScript.

Are CRDTs suitable for shared editing? - Logo
Are CRDTs suitable for shared editing?
Performance analysis of the Yjs CRDT in practice and in the worst case scenario.

Codebase Walkthroughโ€‹

How Yjs works from the inside out - Logo
How Yjs works from the inside out
This is an interview with Kevin Jahns - author of Yjs, a clean and fast CRDT implementation for collaborative editing:https://github.com/yjs/yjsThis is a dee...