20 minute outage --- what happened?!

Our app just suffered a 20 minute outage where all API calls timed-out, all attempts to load the Keap login page or load any Keap app pages timed out.
Support was entirely clueless, never understood what was going on or offered any suggestions and when the app suddenly came back on-line after 20 minutes, support had no idea why it came back on.

Here are some of the error messages we saw:
Failed to invoke method query in class com.infusionsoft.api.xmlrpc.XmlRpcDataService: Unable to get connection for database perfectworkout. Pool must be exhausted Attempted: 1 time(s).

Failed to invoke method query in class com.infusionsoft.api.xmlrpc.XmlRpcDataService: Timed out when waiting for connection to become available for perfectworkout Attempted: 1 time(s).

CloudFlare “Bad Gateway” error

My team really needs to know what happened and why it happened. As I said, Technical support was clueless and obviously had no training on how to communicate, investigate, or follow-up on these kinds of situations.