Why does PowerSync use SQLite as the client-side database?
Why does PowerSync use SQLite as the client-side database?
- SQL functionality & concepts: Millions of developers are already well-versed in SQL constructs and syntax, which means that there’s an instant familiarity with using SQLite. It also means having access to its rich functionality such as aggregations, joins, advanced indexing and JSON support.
- Ecosystem & extensibility: SQLite brings a lot with it: You can use popular ORMs that you’re already familiar with, such as Drizzle, Kysely and Drift. You can use SQLite extensions such as SQLCipher for encryption and FTS5 for full-text search. You can use standard tools for inspecting the database and doing more in-depth debugging. You get all the benefits of the SQLite community and the innovation around it: SQLite just keeps becoming more popular, and people keep doing more new interesting things with it.
- Performance & maturity: SQLite is also really fast, and extremely battle-tested: the SQLite team estimates that there are more than a trillion SQLite databases deployed, and every line in the codebase has 600 lines of test code.
How is a client-side sync triggered? Does the SDK use polling or real-time sync?
How is a client-side sync triggered? Does the SDK use polling or real-time sync?
What data volumes are supported?
What data volumes are supported?
What happens when a user is offline for a long time?
What happens when a user is offline for a long time?
Can a client track whether changes have been processed?
Can a client track whether changes have been processed?
I don’t have direct database access, and can only access data via an API. Can I use PowerSync for this?
I don’t have direct database access, and can only access data via an API. Can I use PowerSync for this?
Are live queries supported?
Are live queries supported?
What features are available for debugging issues?
What features are available for debugging issues?
Are transactions supported?
Are transactions supported?
Can auto-incrementing IDs be used?
Can auto-incrementing IDs be used?
Can attachments (files) be synced?
Can attachments (files) be synced?
My backend application uses GraphQL. Can I use PowerSync?
My backend application uses GraphQL. Can I use PowerSync?
Is the system susceptible to SQL Injection?
Is the system susceptible to SQL Injection?
When should I use getCrudBatch() instead of getNextCrudTransaction() ?
When should I use getCrudBatch() instead of getNextCrudTransaction() ?
Does PowerSync re-sync all data after client parameters are changed with overlapping buckets?
Does PowerSync re-sync all data after client parameters are changed with overlapping buckets?