Summary:
- Outline: Presents various aspects of Graft including different replication approaches and features.
- Graft Overview: Addresses challenges of data sync across clients and servers. Designed for lazy, partial replication with strong consistency, for offline-first & mobile apps, cross-platform sync, etc.
- Edge Replication Approach: Different from full or schema-aware diff replication. Graft is schema-agnostic, replicates bytes, and uses a Volume with sparse Pages. Clients get a compact
graft
with changed page indexes. - Lazy Sync: Clients choose when to sync. After pulling a
graft
, they know what's changed and can selectively fetch necessary pages using prefetching methods. - Partial Sync: Important for edge environments. Clients fetch only needed pages, improving performance. Graft's object storage ensures durability and scalability.
- Edge Sync: Serves pages from object storage through edge servers for low latency. Graft client is lightweight and embedded.
- Consistency: Provides Serializable Snapshot Isolation for strong consistency. Handles commits based on outdated snapshots safely.
- What Can Be Built: Offline-first apps, cross-platform data, stateless read replicas, and replicate any data.
- Graft SQLite Extension (libgraft): A native SQLite extension for lazy partial replication in resource-constrained environments.
- Get Involved: Developed on GitHub. Community contributions welcome. Join Discord or send an email. Waitlist for Graft Managed Service.
- Roadmap: Plans include WebAssembly support, integrating with SQLSync, more client libraries, low-latency writes, garbage collection, etc.
- Comparison with Other SQLite Replication Solutions: Compares with mvSQLite, Litestream, cr-sqlite, Cloudflare Durable Objects, Cloudflare D1, Turso/libSQL, rqlite/dqlite, and Verneuil in terms of storage, replication features, etc.
- Footnotes: Provide details and explanations for various concepts and features.
Key Points:
- Graft offers unique lazy, partial, edge-friendly replication with strong consistency.
- It has a Volume-based model with
grafts
for efficient data sync. - Designed for various edge-native applications and different environments.
- libgraft enables SQLite replication in constrained settings.
- Roadmap outlines future developments.
- Compared with other solutions in the SQLite replication space.
Important Details:
- mvSQLite stores pages by content hash, while Graft uses a different approach.
- Litestream focuses on async durability and read replicas.
- cr-sqlite uses CRDTs for logical replication.
- Graft's isolation model is Serializable Snapshot Isolation.
- It has various prefetching methods and supports arbitrary data replication.
- Roadmap includes features like WebAssembly support and conflict handling.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。