GitHub ha experimentado un crecimiento exponencial sin precedentes, impulsado principalmente por la adopción de workflows de desarrollo 'agentic' (IA) desde finales de 2025. Este crecimiento ha superado las proyecciones de capacidad, pasando de una necesidad de 10X a 30X la escala actual en pocos meses. La naturaleza interconectada de los servicios de GitHub significa que la presión en un componente (ej. Git storage, bases de datos, caches) se propaga rápidamente, exacerbando ineficiencias y causando fallos en cascada, como colas profundas, fallos de caché que sobrecargan las bases de datos, y retries que amplifican el tráfico.
Los dos incidentes recientes son síntomas directos de esta presión. El incidente del 23 de abril en la merge queue, que resultó en commits incorrectos para 658 repositorios y 2,092 PRs, expuso fallos en los procesos y una falta de robustez en una funcionalidad crítica. Aunque no hubo pérdida de datos, la corrupción del estado de las ramas por un error lógico en la operación de squash merge es un fallo grave en la integridad del código. El incidente del 27 de abril, que afectó a Elasticsearch, ilustra un problema de resource exhaustion y falta de aislamiento. Un cluster sobrecargado, posiblemente por un ataque, dejó de funcionar, impactando la UI que dependía de la búsqueda. Este subsistema no había sido priorizado para aislamiento, revelando un punto único de fallo que no se degradó de forma elegante bajo presión.
Las salvaguardas existentes fallaron porque la magnitud y velocidad del crecimiento superaron las expectativas y la capacidad de los sistemas para adaptarse. La interdependencia de los servicios, donde una ineficiencia menor se convierte en una sobrecarga mayor, y la falta de aislamiento completo en subsistemas críticos, permitieron que la presión en un área se tradujera en una interrupción significativa. La ausencia de un plan de capacidad que pudiera prever y absorber este tipo de crecimiento repentino, junto con la exposición de puntos únicos de fallo y procesos de desarrollo que no capturaron regresiones críticas, son los factores subyacentes.