ENGINE // 01
Yjs (High-Performance Shared Types)
An ultra-fast CRDT implementation written in JavaScript with compact binary encoding. It uses the YATA algorithm to structure text, maps, and arrays, making it the industry standard for rich-text editors (ProseMirror, Quill, Monaco, Slate).
- • Best For: Collaborative documents, canvas tools, code editors
- • Memory: Exceptionally lean itemized linked list structure
- • Ecosystem: Complete bindings for WebRTC, WebSocket, IndexedDB
ENGINE // 02
Automerge (Rust Core + Document Trees)
A JSON-like CRDT data structure featuring a high-performance Rust core compiled to WebAssembly. Automerge stores an immutable version history, enabling Git-like branching, time-travel scrubbing, and verifiable cryptographic commit logs.
- • Best For: Versioned state, offline journals, branching documents
- • Compression: Columnar chunk format reduces sync payloads by 90%
- • Integrity: SHA-256 commit hashes verify edit provenance
ENGINE // 03
ElectricSQL (Postgres-to-SQLite Sync)
A replication engine that captures changes from central PostgreSQL via logical replication streams and syncs them bi-directionally to client-side SQLite instances using Shapes and Satellites.
- • Best For: Complex multi-table relational applications, B2B SaaS
- • Querying: Standard reactive SQL queries on the device
- • Permissions: Row-level security enforced via Electric Shapes
ENGINE // 04
Replicache & PowerSync
Optimistic client-side caches that decouple mutation queuing from conflict resolution. Mutations run instantly against local IndexedDB or SQLite, enqueue to an outbox, and reconcile via server push streams.
- • Best For: Existing backend stacks that cannot adopt CRDT math
- • Simplicity: Allows custom server-side validation logic
- • Tradeoff: Requires custom rebase replay handlers on divergence