I am not using any sort of ORM just the mongo node.js driver in express. Currently I wrap every request in a promise that creates a new mongo client and closes the connection when the promise either succeeds to fails. I am only allowed 750 connections so during a spike if I hit this amount then new requests could not open new connections and so the requests would fail.
I thought a solution to this would be to create a single client connection when the node server starts and set a connection pool to something like 650 (since some of the 750 is reserved for internal stuff.) This way each request no longer created/closed a connection and they just used from the pool, the pool would grow as needed to the 650 number but then just reuse from that pool during a spike.
That was my theory but it seems like somehow the connection got closed (I am guessing a timeout) and since it was just creating a single connection now on server start it never re-opened a new connection after this so it brought my service down.
I have since reverted back to my original strategy. Just wondering if there are some insights here to what I could be doing better?