introducing

Pulse Early access

Type-safe change data streams with Prisma Client

Join the waitlist

Make real-time easier

Achieve seamless real-time communication between your database and app, letting you focus on building robust apps while we handle the data syncs for you - like magic.

Getting data with subscribe()
Combine subscribe() with different parameters
// Subscribe to new events on the `message` table
const liveQuery = prisma.message.subscribe()
// Waiting loop that prints new events when something changes in the database
for await (const event of liveQuery) {
console.log(event.action); // 'create', 'update', 'delete'
}
// Examples may change based on developement during Early Access
Getting data with subscribe()
// Subscribe to new events on the `message` table
const liveQuery = prisma.message.subscribe()
// Waiting loop that prints new events when something changes in the database
for await (const event of liveQuery) {
console.log(event.action); // 'create', 'update', 'delete'
}
// Examples may change based on developement during Early Access
Combine subscribe() with different parameters

Bring your own database

Smoothly integrate Pulse with your existing database for seamless CDC management. Follow our guide to make your database Pulse-ready, enabling real-time streaming and improved app performance.

Ease of use

Subscribe to real-time data changes in your database with the subscribe() function in Prisma Client. Enjoy hassle-free, type-safe database subscriptions and smooth integration.

Time to market

Streamline your development with Pulse for faster real-time features. Skip database polling and complex change data capture, and focus on building exceptional apps.

Architectural freedom

Leverage your existing PostgreSQL, and soon MySQL, for seamless real-time features. Integrate directly with Prisma and your current infrastructure.

What's happening under the hood

Database support

PostgreSQLPostgreSQL
MySQLMySQL
More comingMore coming

Frequently asked questionsFAQs

What databases are supported with Pulse?
The Pulse EA supports PostgreSQL with plans to extend support to MySQL in the near future.

Pulse primarily interfaces with a database's write-ahead log to efficiently capture data change events, offering a more performant solution than regular polling through scheduled queries. Initially, Pulse supports PostgreSQL, with plans to extend support to MySQL in the future. Note that Pulse may not work with every Postgres-compatible database, as compatibility depends on the exposure of Postgres-native logical replication capabilities required for change data capture.
Can I use Pulse in my front-end code?
Pulse is accessible through a Prisma Client extension and cannot be used directly in a browser. If you would find this feature valuable, please share your thoughts on the #pulse-feedback channel on our community Slack.
What delivery or persistence guarantees does Pulse provide?
Pulse delivers change events to Prisma Clients with active connections using the subscribe() method. It does not maintain persistence for events, so any changes occurring while a Prisma Client is not subscribed will be dropped.

If your use case requires greater delivery guarantees or persistence, please reach out to us on the #pulse-feedback channel on our community Slack.
How does Pulse handle schema changes in the database?
Pulse is designed to work seamlessly with schema changes in your database by utilizing Change Data Capture (CDC) techniques, leveraging technologies like Debezium, and combining that with the power of schema-driven data access using the Prisma ORM. When your Prisma schema is updated, Pulse automatically adapts to the changes, ensuring that your real-time data synchronization remains consistent and reliable.

Pulse leverages the type information generated by Prisma to create type-safe database subscriptions, allowing you to catch potential issues at compile time and maintain the integrity of your data throughout the development process. This approach allows Pulse to efficiently capture and propagate data changes while maintaining compatibility with evolving database structures.
Does Pulse work in a serverless environment?
Pulse will natively support Serverless environments soon after GA.
While in Early Access, Pulse works best when it’s able to maintain an active real-time connection from your database to your application. However, some providers limit the duration of serverless functions. While Pulse can be used within these functions, the connection will be closed when the provider terminates the function.

Although it is possible to restart the function and reconnect to Pulse, database events may be missed during the reconnect window. To avoid missing any data, one way to work around this is to query the data during reconnection and compare the two datasets.

Alternatively, you can use a provider that does not limit execution time and maintains a long-running connection to Pulse. Please reach out to us on the #pulse-feedback channel on our community Slack if having a more native serverless approach to getting data change events is important to you.

Join the waitlist

Sign up now