Under load, every request to your service takes about the same long time and then some start failing with "timeout acquiring connection". What is happening?

Answer it out loud before you open anything. The value of the flags below is in comparing them to what you actually said.

The situation behind the question

A Node service, pool size 20, running four instances against one Postgres primary. Database CPU is low. The database's own slow query log is empty.

What it is really testing

Whether the candidate reads "database is idle, requests are waiting" correctly. Low database CPU with high request latency points at the pool as a queue, not at the database as a bottleneck — and then at what is holding connections without using them.

Where the mechanism is taught