The Sequelize docs for pool.idle say it is:
The maximum time, in milliseconds, that a connection can be idle before being released.
But on a github issues page, a Sequelize contributor says:
Basically, idle decides if a connection is idle or not, say if connection is not used for 15sec then it is idle.
This suggests that pool.idle has nothing to do with the connection being released, apparently contradicting the Sequelize documentation.
The same comment continues:
Being "idle" does not mean it will get removed from pool. It is evict that will remove any idle connection. As per your config, evictor will run every 10sec and check if there are any idle connection to remove.
I.e. pool.idle just says how long a connection can be unused before it is marked as idle.
Which is correct? Or, are both somehow correct?