When using the connection pool, when the hard limit is reached an error is generated. Another potential option for this would be implementing a connection request queue. When there are no connections to be distributed, the request would be added to a queue, and a promise for a connection returned. As connections are released back into the pool they would be given to requests in the queue in FIFO order.