Skip to main content


Your application can listen to events for when data changes in your application.

Data changes

Once a datastore or database is opened, you can listen to changes to automatically update your application:

const filter = {
status: 'active'
const listener = await database.changes(function(row) {
console.log("Row changed", row)
}, filter)

Try this out with your own profile data in the browser in our tutorial.


  • filter: An optional JSON object. The listener will only raise events if the data in the object matches the supplied filter.

You can cancel the event listener:


Similarly you can call:

const listener = await datastore.changes(function(row) { ... })

Inbox messages

You can be notified when a new inbox message arrives for your application:

const messaging = await context.getMessaging()
messaging.onMessage(function(message) { console.log('New message!', message)})

Database sync changes

Data is automatically synchronized from remote encrypted servers to the local client. It’s possible to listen to events related to this syncing behavior:

const listener = database.onSync('error', (err) => { console.log(err) })

A full list of events is available via the PouchDB Documentation