High levels of traffic put guppe into a death spiral where each request was timing out before completion, prompting the sending server to retry, increasing load even further. These partially completed requests are worse than rejected requests because guppe might never deliver the announce for the message, so I turned it off until I get a chance to setup an NGINX reverse proxy & load balancer
Guppe is restored with 4x web server replicas (using Docker Swarm for easy load balancing) and 8x delivery workers on a 4 core VPS. Running without any issues since that upgrade.
High levels of traffic put guppe into a death spiral where each request was timing out before completion, prompting the sending server to retry, increasing load even further. These partially completed requests are worse than rejected requests because guppe might never deliver the announce for the message, so I turned it off until I get a chance to setup an NGINX reverse proxy & load balancer