-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
A discussion on r/golang suggested exploring Dolt (a MySQL-compatible database with Git-style versioning) as an alternative or supplement to SQLite.
Context:
- Currently, we use SQLite for its zero-config, embedded, and single-file nature, which is ideal for a local-first desktop application.
- We already leverage some LibSQL features and are considering Turso for future cloud-sync capabilities.
- We maintain relatively simple SQL to ensure broader compatibility.
Points for Discussion:
- Versioning & Rollbacks: Dolt provides Git-style branching, merging, and rollbacks at the database level. Would this be more robust than our current application-layer undo/redo logic?
- Embedded Requirements: Can Dolt (or other engines) run in a zero-CGO, embedded mode that fits our single-binary distribution model?
- Database Agnosticism: Should we further abstract our data access layer to support multiple backends (e.g., SQLite for local, Dolt for versioned flows, Turso for sync)?
- Trade-offs: Binary size, performance overhead, and 'no-CGO' compatibility.
We want to keep the foundation stable with SQLite for now, but this is an open thread to evaluate these architectural shifts as the project grows.
Metadata
Metadata
Assignees
Labels
No labels