Database Adapters Overview
c15t Backend supports multiple database adapters, each offering different features and trade-offs. This guide helps you choose the right adapter for your needs.
Deprecated Feature
@c15t/backend v1 did not deliver the flexibility we wanted and fell short of our standards. It is now deprecated as we work on a full rewrite, with v2 entering canary soon. This does not affect Consent.io deployments, which remain stable.
Comparison Table
Feature | Memory | Kysely | Prisma | Drizzle |
---|---|---|---|---|
Best for | Development | Production SQL | Full ORM | Lightweight ORM |
Type safety | Basic | Good | Excellent | Excellent |
Schema management | None | Manual | Automatic | Manual + Tools |
Migrations | None | Manual | Automatic | CLI tools |
Query complexity | Basic | Advanced | Advanced | Advanced |
Transaction support | No | Yes | Yes | Yes |
Performance | Fast (in-memory) | Fast | Moderate | Fast |
Bundle size | Minimal | Moderate | Large | Small |
Database support | N/A | PostgreSQL, MySQL, SQLite | Many | PostgreSQL, MySQL, SQLite |
Choosing the Right Adapter
- Memory Adapter: Perfect for development, testing, and demos. Not suitable for production.
- Kysely Adapter: Great for applications that need direct SQL access with type safety and performance.
- Prisma Adapter: Ideal for applications that benefit from a full-featured ORM with schema management.
- Drizzle Adapter: Good balance between performance and features with a lightweight footprint.
Migration Path
You can switch between adapters as your application needs evolve:
- Development → Production: Start with Memory adapter, then migrate to Kysely, Prisma, or Drizzle
- Changing Adapters: The common adapter interface makes it relatively easy to switch between implementations
Next Steps
Edit on GitHub
Last updated: April 15, 2025