Sync MySQL with SQLite

Make your MySQL-backed application real-time, super-fast, always consistent and network-resilient.

MySQL
SQLite

Add real-time sync to MySQL

PowerSync streams MySQL changes to clients in real-time, so apps can query and mutate local SQLite without waiting on the network.
‍
Sync Streams handle partial syncing under the hood, giving every user just the data they need.
Backend
PowerSync Service
Clients
MySQL
binlog
replication
Sync Streams
WebSocket or
HTTP
stream
SQLite
SQLite
MYSQL DATABASE, meet SQLite

How data syncs from MySQL to client-side SQLite

Privilege-scoped connection

PowerSync connects to your MySQL database over TCP with read access to all synced tables and permissions to read binary logs (binlogs).

Replication via binlogs

After an initial snapshot of data is taken, PowerSync subscribes to the binlog stream to capture row-level changes.

Low maintenance

PowerSync automatically handles most schema change scenarios in MySQL, with no need for client-side migrations.

MySQL
Binlog
Table and row filtering

PowerSync filters the binlog stream based on configured Sync Streams to sync only the relevant tables and rows.

Binlog events
Operations history tracked

The PowerSync Service tracks changes to data, allowing for efficient delta syncing to clients.

PowerSync Service
Sync Streams
Sync Streams for partial sync

You define Sync Streams that control which data can be synced by clients. Data is grouped and shared efficiently between users to avoid duplication.

WebSocket or HTTP stream
Authentication using JWTs

Clients authenticate against the PowerSync Service using JWTs.

Real-time sync

The client SDK does an initial sync of data based on the user's Sync Streams subscriptions, and then incrementally keeps it updated in real-time.

Offline-first, including local writes

Writes are immediately applied locally, and queued for upload to your backend API. The PowerSync client SDK automatically handles failures and retries.

PowerSync Client SDK
Client-side SQLite
App data tables
Upload queue
Full database on the client-side

On the client, data is persisted to a SQLite database.

Reactive queries

Live reactive queries can be used to update the UI when data changes.

Strong consistency guarantees

PowerSync uses a server-authoritative architecture with a checkpoint system to guarantee consistency.

Control over the write path

Your backend accepts uploaded writes and then applies them to your MySQL database.

Backend API
MySQL
Binlog
Binlog events
PowerSync Service
Sync Streams
WebSocket or HTTP stream
PowerSync Client SDK
Client-side SQLite
App data tables
Upload queue
Backend API
On the server-side
On the client-side
See installation instructions:
Source database setup

Highly scalable and enterprise-ready

Horizontally scalable

AWS Private Endpoints available in Cloud

Sharded database support

Planned
See pricing

Implement MySQL & SQLite sync today

Self-hosted PowerSync
Self-hosted PowerSync illustration
Self-host PowerSync