Known limitations
Below are descriptions of known limitations when using Prisma Pulse. If you are aware of any limitations that are missing, please let us know on the #help-and-questions
channel in our community Discord.
Superuser role required for starter plan
Our Starter plan requires a database role with superuser access.
Database events are not persisted
Prisma Pulse does not persist database events and does not provide delivery guarantees regarding ordering or exact-once/at-least-once delivery.
To capture database events, an application must maintain an active connection to Pulse using the subscribe()
method.
It's important to note scenarios where database events may not be delivered:
- Inactive subscriptions: If no active subscriptions match the filters of the database event.
- Exceeding database event size limits: Database events surpassing predefined size limits.
Prisma Pulse is server-side
Prisma Pulse subscriptions cannot be initiated directly within client-side code.
Limited to Postgres versions 12 or higher
Prisma Pulse is currently supported with Postgres versions 12 or higher. It should work with most Postgres providers that expose Postgres’ native logical replication feature.
Subscription type limitation with custom publication slots
Our advanced onboarding flow enables you to provide a custom publication slot. Should that custom publication slot only contains a subset of your database tables, the Prisma Client generated with the Pulse Client Extension will continue to permit subscriptions to all models based on the entirety of your Prisma Schema definitions.
For example, if you have two models in your schema, the User
and Post
model. And you opt to create a publication to monitor changes in the User
model exclusively:
CREATE PUBLICATION user_publication FOR TABLE users;
To learn more about creating custom publication slots, see managing your publication slot.
Your resulting subscription code would be:
const userSubscription = prisma.user.subscribe()
However, despite the absence of publication coverage, the generated Prisma client permits subscriptions for all models, such as the Post
model:
const postSubscription = prisma.post.subscribe()
We are actively working on enhancing type generation for custom publications as part of our ongoing efforts to further refine Prisma Pulse.