How we tracked down a mysterious latency issue in our AWS Lambda + RDS Proxy stack, and discovered Prisma was the culprit all along.
A serverless application using AWS Lambda, RDS Proxy, and Prisma experienced intermittent latency spikes from 200ms to 16 seconds per query. Investigation revealed that Prisma's use of MySQL's binary protocol triggered connection pinning in RDS Proxy, preventing connection reuse and causing delays. The issue was resolved by understanding and addressing how Prisma interacts with the database at the protocol level.
- ▪The API latency spikes were traced to RDS Proxy holding 400 to 870 pinned connections during peak hours.
- ▪Pinned connections occurred because Prisma uses MySQL’s binary protocol, which issues prepared statements that RDS Proxy cannot multiplex.
- ▪Manual execution of the same queries directly against the database took only 3.2 milliseconds, confirming the database was not the source of the delay.
Opening excerpt (first ~120 words) tap to expand
try { if(localStorage) { let currentUser = localStorage.getItem('current_user'); if (currentUser) { currentUser = JSON.parse(currentUser); if (currentUser.id === 3517237) { document.getElementById('article-show-container').classList.add('current-user-is-article-author'); } } } } catch (e) { console.error(e); } Jayesh Shinde Posted on May 17 How we tracked down a mysterious latency issue in our AWS Lambda + RDS Proxy stack, and discovered Prisma was the culprit all along. #aws #prisma #mysql #serverless Our API Was Fine. Database Was Fine. So Why Were Queries Taking 16 Seconds? It started with a support ticket. A customer-facing API that normally responds in 200ms was occasionally spiking to 16 seconds. Not every request — just enough to make people nervous.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at DEV.to (Top).