Compare Accelerate
Prisma Accelerate supports products that serve a global audience, with a global caching system and connection pool that spans multiple regions, providing consistent access to data with low latency no matter where your user (or your database) is located in the world.
The managed connection pool is designed to support serverless infrastructure, capable of handling high volumes of connections and adapting to traffic spikes with ease.
Explore how Prisma Accelerate compares to other global cache and connection pool solutions on the market, and discover what sets it apart.
What makes Accelerate unique?
Prisma Accelerate is chosen and loved by many for a number of key reasons which make Accelerate unique:
- Query-Level policies: Accelerate is the only solution that offers query-level cache policies, allowing you to control the cache strategy for each query specifically. It is common to have some values that need to be cached for a long time, others that need caching for a short time, and some that should not be cached at all. With Accelerate you can do this, and even set different cache strategies per query.
- Global by default: Accelerate is globally distributed by default. You never need to worry about where a user is located with respect to your database location.
- Fully managed: You don't need to manage a server or worry about uptime. Accelerate is fully managed for you.
- Auto-scaling: Accelerate automatically adjusts resources to match workload demands, providing fast and consistent performance during traffic spikes.
Accelerate global cache
Prisma Accelerate offers a powerful global cache, so you can serve data to your users at the edge — the closest point to where the users are located — no matter where your database is hosted. This not only speeds up the experience for users, but also reduces read load on your database as well by avoiding roundtrips.
Accelerate | Hyperdrive | Planetscale Boost | |
---|---|---|---|
Fully Managed | ✅ | ✅ | ✅ |
Globally distributed edge infra | ✅ | ✅ | ✅ |
Control cache policy from code | ✅ | ❌ | ❌ |
Query-level cache policies | ✅ | ❌ | ❌ |
Authenticate with API key | ✅ | ❌ | ❌ |
Postgres compatible | ✅ | ✅ | ❌ |
MySQL compatible | ✅ | ❌ | ✅ |
MongoDB compatible | ✅ | ❌ | ❌ |
Automatic cache updates | ❌ | ❌ | ✅ |
Why are these important?
-
Since Accelerate extends the Prisma client, you can control caching policies directly from your codebase with just an extra line of code. Integration is seamless. Here is an example using the stale-while-revalidating caching strategy:
await prisma.user.findMany({
cacheStrategy: {
swr: 60,
},
}); -
Query level cache policies are critical for serious applications, so that you can control which queries are cached, and the characteristics of the policy. You may want certain data in your app to be cached for several days, other data to be cached for a just a few minutes, and other data to be not cached at all. This is only possible with Prisma Accelerate.
-
Authenticating with an API key can be a helpful security measure, allowing you to decouple database credentials from application secrets. Easily rotate API keys as often as you like, without needing any credential changes in your database
-
Automatic cache updates means that the cache is automatically updated when a change in the database occurs. With Accelerate, you are in control of how the cache is invalidated, using various caching strategies.
Accelerate connection pool
Prisma Accelerate includes a globally hosted connection pooler, which allows you to handle peak loads without any problem. Using a connection pool is important especially for serverless infrastructure, which by nature is not able to control connection volume to the database on its own. Prisma Accelerate offers a fully managed, globally colocated option, which auto scales to support any workload.
Management
Accelerate | pgbouncer | pgcat | Digital Ocean (pgbouncer) | Neon (pgbouncer) | Supavisor | Hyperdrive | |
---|---|---|---|---|---|---|---|
Fully managed | ✅ | ❌ | ❌ | 🟠 | ✅ | ❌ | ✅ |
Globally distributed | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
Integrated with ORM client | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Authenticate with API key | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Redundancy | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Why are these important?
- If you decide to manage a connection pooler yourself (eg. using pgbouncer or pgcat) you will also be responsible for managing its uptime. If the server crashes, your application may be down until you recover it. Accelerate, as a fully managed solution will be recovered for you transparently, in the unlikely case of any infrastructure issue.
- The hosted pgbouncer option on Digital Ocean is semi-managed, you will need to set it up in your Digital Ocean account, and ensure it is running smoothly at all times.
- Authenticating with an API key can be a helpful security measure, allowing you to decouple database credentials from application secrets. Easily rotate API keys as often as you like, without needing any credential changes in your database
- Redundancy is helpful in the unlikely scenario that your connection pool service goes down. With Accelerate, it is automatically and seamlessly handed over to another server and recovered without any interruption.
Performance
Accelerate | pgbouncer | pgcat | Digital Ocean (pgbouncer) | Neon (pgbouncer) | Supavisor | Hyperdrive | |
---|---|---|---|---|---|---|---|
Auto scaling | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Globally distributed | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
Optimized queries over HTTP | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
Isolated compute | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Why are these important?
- Accelerate will automatically scale up and down to suit your application workload, meaning you'll never run out of compute resource. Additionally, this provides important redundancy to protect against any single compute instance failing — in the unlikely event of an instance going down, Accelerate will automatically spawn a new instance.
- Cross-region TCP handshakes between the application server and PgBouncer or the database are costly and time-consuming. If connections are reused only at the PgBouncer layer, the TCP handshake and connection setup still consume unnecessary time on every single request, which undermines the efficiency of connection reuse. Prisma Accelerate improves this by leveraging HTTP, which is more efficient for connection management. It reduces the overhead associated with TCP handshakes, resulting in faster, more responsive interactions between your application and the database.
- Never worry about 'noisy neighbors' with isolated compute resources. Other customers never impact on your own performance.
Database Support
Accelerate | pgbouncer | pgcat | Digital Ocean (pgbouncer) | Neon (pgbouncer) | Supavisor | Hyperdrive | |
---|---|---|---|---|---|---|---|
PostgreSQL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
MySQL | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Planetscale | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
CockroachDB | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
MongoDB | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |