0.0.1 • Published 3 years ago

serverless-prisma v0.0.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 years ago

serverless-prisma

Small packages that help Prisma handle a serverless environment better, partially inspired by serverless-mysql and serverless-pg

Problem

When running a Prisma based application in a serverless environment, you might end up with all your database connections being "in use" by serverless environments (that even might not actively be responding to requests right now). This is not Prisma's fault, as you would get the same behavior with any other database client in a serverless environment. But of course this fundamentally does not matter - as a user I want to be able to use Prisma in a serverless environment.

Solutions

Primitive

  • On "Too many connections" error, retry creating connection a few times instead of directly failing (different strategies)
  • After successful execution, close own connection when high connection usage on database server detected

Advanced

  • Handle own connection (from previous connection usage) being gone and retry instead of just failing
  • After successful execution, kill other connections that have been idle (not been used) for some time

Implementation plan

  1. Test that reliably produces "too many connections" errors (via serverless deployment)
  2. Implement "Too many connections" retry as Prisma Middleware
  3. Implement method that closes own connection via $disconnect in high connection usage situation
  4. Implement "connection gone" (or whatever it presents as) error as Prisma Middleware as well (big hammer: $disconnect, then query again)
  5. Implement method that kills other connections