news.volyx.in

Stop syncing everything (sqlsync.dev)

656 points by neilk · 489 days ago · 126 comments on HN

Article summary

The article introduces Graft, an open-source transactional storage engine designed for lazy, partial replication with strong consistency, horizontal scalability, and object storage durability. Graft is intended for edge environments, such as offline-first and mobile apps, and allows clients to sync at their own pace, syncing only what they need. The engine uses a sparse, ordered collection of fixed-size Pages and provides a transactional API for clients to interact with Volumes. Graft aims to combine the simplicity of physical replication with the efficiency of logical replication.

Main themes

  • Edge replication
  • Lazy syncing
  • Partial replication
  • Strong consistency
  • Object storage
  • Transactional storage
  • Offline-first apps
  • Mobile apps

What commenters say

  • Graft's consistency model is confusing and may not provide strict serializability as claimed.
  • The engine's design is more similar to Git's commit concept than traditional SQL commits, which may lead to confusion.
  • Graft's approach to replication is flexible and allows for trade-offs between consistency and performance, making it suitable for various use cases.
  • The system's documentation needs to be clarified to accurately reflect its consistency guarantees and potential limitations.
  • Graft's use of a single 'commit' operation may not be sufficient to ensure strict serializability, and additional mechanisms may be needed.
  • The engine's ability to handle offline writes and asynchronous commits is a key feature, but its implications on consistency need to be carefully considered.
  • Graft's design is more general and lower-level than other solutions, making it potentially applicable to a wider range of use cases beyond SQLite and SQLSync.
  • The system's consistency model is not strictly serializable, but rather provides a flexible framework for applications to choose their desired consistency level.