PowerSync

PowerSync

@powersync.com

Sync engine for keeping backend databases in sync with client-side SQLite. Postgres | MongoDB | MySQL | SQL Server | Azure DocumentDB ๐Ÿ˜๐ŸŒฟ๐Ÿฌ๐Ÿ›ข๏ธยซ-ยป ๐Ÿชถ

212 followers233 following489 posts

PowerSync reposted

spent a couple of days setting up the @powersync.com service (self-hosted) in a React app with a PostgreSQL database backend. Not straightforward, but THIS IS FAST! #localfirst

We love SQLite, but working with booleans can have some rough edges due to SQLite's absence of a dedicated bool type. We shipped "fixed_booleans_in_json" in 1.27 of the PowerSync Service, which now preserves boolean literals in synced JSON. Check it ๐Ÿ‘‡

We've released 1.27.1 of the PowerSync Service on Docker Hub. It contains mitigations for the eMudhra Intermediate CA Compromise. The compromise could affect JWKS fetching and TLS connections for source databases. It is recommended to upgrade now. github.com/powersync-j...

github.comUpdate CA bundles by rkistner ยท Pull Request #854 ยท powersync-ja/powersync-serviceUpdate to NodeJS v24.22.0. Update system CA bundles in the Docker image - likely unused. Use the latest Mozilla CA bundles for NodeJS. This is a smaller change than switching over to system bundles...

The PowerSync CLI now has a --dry-run flag for all deploy commands, to review changes before deploying. If you're paranoid about agents running amok, this could help. Available in v0.10.2

Sometimes your app requires fast user switching. If you call disconnectAndClear(), then each time a user switches they need to re-download all their data. To make user switching faster, consider preserving local data when disconnecting: db.disconnectAndClear({ soft: true })

Weโ€™ve added an India region to PowerSync Cloud (ap-south-1) If youโ€™re building for users in India, you can now host PowerSync closer to them. We already work with great customers in India, and thereโ€™s good time zone overlap with our engineering teams based in Europe and Asia.

Reflecting on the past year we observe that Sync Streams are bigger and better, and don't remove any existing functionality that users love. Therefore we're comfortable to announce that in T+15 months, legacy Sync Rules will be phased out entirely. releases.powersync.com/announcemen...

releases.powersync.comOur Plan for Phasing Out Sync RulesWe're phasing out Sync Rules in favor of Sync Streams over the next 15 months. From 15 March 2027, new PowerSync Cloud instances can only use Sync Streams. From 15 December 2027, you can no longer deploy Sync Rules and support for them ends.

Back in May we opened more of our engineering process: more frequent GitHub proposals and Discord engineering discussions. Since then we've seen an uptick in high quality community PRs ๐Ÿคฉ It makes us especially happy to see that the community is enjoying this collaboration

We've started defining the scope for a self-hosted version of the PowerSync Dashboard. If you have any specific feature requests, drop them in comments.

Compaction logs are now visible in the PowerSync Dashboard! PowerSync keeps a history of relevant source database changes so reconnecting clients can efficiently catch up. This operation history can become large, so compaction is required. It runs automatically on PowerSync Cloud, now with logs

PowerSync Service 1.26.0 is out, introducing storage version 4 with two big improvements: - Incremental reprocessing for MongoDB - S3 object storage for bulk sync data TL;DRs below ๐Ÿ‘‡

View full thread

Storage version 4 and S3 are rolling out automatically to Free plan instances. Other plans can opt in, with S3 enabled separately. The upgrade involves a one-time full client re-sync. Rollout details and setup instructions:

PowerSync Service 1.26.0 is out, introducing storage version 4 with two big improvements: - Incremental reprocessing for MongoDB - S3 object storage for bulk sync data TL;DRs below ๐Ÿ‘‡

View full thread

Bucket storage on S3 When enabled, larger batches of sync data move from the instanceโ€™s storage database to S3. The Service reads them from S3 and streams them to clients.

That reduces load on the storage database, improving initial sync speed and stability, especially with large datasets or many clients connecting at once. It also increases capacity for concurrent clients.

PowerSync Service 1.26.0 is out, introducing storage version 4 with two big improvements: - Incremental reprocessing for MongoDB - S3 object storage for bulk sync data TL;DRs below ๐Ÿ‘‡

View full thread

With storage version 4, most Sync Streams deploys reprocess only the streams youโ€™ve added or changed. Clients only re-download data for those affected streams. Some changes still require a full reprocess, but routine config updates become much lighter.

PowerSync Service 1.26.0 is out, introducing storage version 4 with two big improvements: - Incremental reprocessing for MongoDB - S3 object storage for bulk sync data TL;DRs below ๐Ÿ‘‡

Incremental Reprocessing One of the biggest pain points with PowerSync was that even a small change to your sync config required re-replicating everything from scratch, and clients had to re-sync all their data.

Large attachment transfers just got easier in our JavaScript SDKs: you can now avoid buffering entire files in JS memory

Weโ€™ve received several customer questions about bucket counting in Sync Streams. Weโ€™ve expanded our docs to explain how counts are calculated and added a troubleshooting guide for bucket count and parameter query result limits: docs.powersync.com/sync/stream... docs.powersync.com/sync/advanc...

docs.powersync.comReducing Bucket Count - PowerSyncDiagnose a high bucket count, reduce the number of buckets a user syncs, and raise the per-user limits when needed.

The new OPFSWriteAheadVFS for wa-sqlite not only brings concurrent reads to SQLite on the web, but also makes write transactions faster!

View full thread

The new OPFSWriteAheadVFS for wa-sqlite not only brings concurrent reads to SQLite on the web, but also makes write transactions faster!

View full thread

So the tradeoff is simple: faster writes now, weaker crash protection for newest data. This is often fine for local-first apps where recent changes can be retried, re-synced, or recreated from server state.

If the app needs stronger guarantees, it can turn durability back up with PRAGMA synchronous=FULL or EXTRA. Then the VFS flushes more aggressively so recent commits are much more likely to survive crashes, but write performance drops.

The new OPFSWriteAheadVFS for wa-sqlite not only brings concurrent reads to SQLite on the web, but also makes write transactions faster!

View full thread

In default mode, commit means "this transaction is recorded in WAL and the database stays valid," not "the browser has definitely flushed this to storage." If the tab crashes or the device loses power, the app may lose the most recent writes, but the database should not come back corrupted.

Why the speedup is big: forcing storage flush on every tiny write is expensive. That flush is often the slowest part of the commit. By skipping it on a hot path, the VFS removes a lot of overhead, which especially helps with workloads with many small transactions.

The new OPFSWriteAheadVFS for wa-sqlite not only brings concurrent reads to SQLite on the web, but also makes write transactions faster!

It does this by not insisting every commit hit the disk immediately. Instead of updating the main database file right away, it writes changes into side log files first. That is cheaper, so small write transactions finish much faster.

We're at @stirtrek! Come say hi, grab a free tshirt, enter a giveaway for a Meta Quest 3S, and chat about building fullstack AI applications

How would you like a persistent browser database that: ๐Ÿ’พ stores data durably in the browser ๐Ÿชถ avoids Asyncify time and size overhead ๐ŸŒ skips COOP/COEP header requirements ๐Ÿ—‚๏ธ works across multiple tabs and workers ๐Ÿ‘€ supports simultaneous read transactions

๐Ÿ“ supports write-ahead logging (WAL) โšก moves data faster than IndexedDB โœ๏ธ commits writes faster than IndexedDB ๐Ÿ“ lets you copy, import, export, and rename DB files with OPFS? Say hello to OPFSWriteAheadVFS, a new virtual file system option for wa-sqlite!

If your AI app needs durable runs, resumable streams, background jobs, and shared history to be reliable, you're already partway to multiplayer. The next step is making that state collaborative so that your agents can align with not just a single user, but an entire team.