Con 100 usuarios y caídas, lo primero es descartar que no sea un tema de memoria o de conexiones. Has mencionado el event loop, pero también revisa el límite de archivos abiertos y el número de conexiones simultáneas. Si usas Node, prueba a monitorizar con process.resourceUsage() y mira si el RSS crece sin control. Un patrón que he visto: arrays que se acumulan en memoria por no limpiar referencias en listeners. Otra cosa: ¿tienes algún middleware que haga algo pesado en cada request, como autenticación con JWT y verificación de firma asíncrona? Eso puede saturar el event loop. Para diagnosticar, te recomiendo clinic.js con el doctor, que te da el flamegraph y te dice si es CPU o I/O. Si es I/O, mira las queries: con 100 usuarios, un N+1 en las consultas puede tirar el servidor. Activa el slow query log y pon índices en los campos de filtro. Y si usas PM2, asegúrate de que el modo cluster no esté compartiendo el mismo puerto sin sticky sessions, porque eso causa errores de conexión. Pero antes de escalar, asegúrate de que no tienes un while infinito en algún middleware de error.