Uber implementa un mecanismo de propiedad de errores para evitar tormentas de reintentos

Fuentes: Uber implements error ownership mechanism to prevent retry storms

Uber ha desarrollado un mecanismo de infraestructura compartida para gestionar las tormentas de reintentos (retry storms) que afectan a sus servicios. Este sistema resuelve la limitación de las configuraciones manuales actuales, que no son conscientes del contexto y pueden amplificar fallos en cadenas de dependencias profundas. El problema surge porque, durante degradaciones severas, los reintentos agresivos aumentan la carga en servicios ya sobrecargados, acelerando el colapso y propagando el tráfico de reintentos a dependencias aguas arriba.

La solución se basa en la 'propiedad de errores', un concepto que distingue entre el síntoma (el error propagado) y la causa (el origen del fallo). Uber utiliza una herramienta de análisis de dependencias de servicio para correlacionar fallos entrantes y salientes. Si un servicio no es el origen del error, no debe reintentar, lo que limita el radio de impacto de la tormenta. Por el contrario, si el servicio es el causante, se permite el reintento para mejorar la disponibilidad percibida por el llamador. Este enfoque permite mantener la estabilidad del sistema sin sacrificar la resiliencia, evitando que un fallo localizado se convierta en un incidente a nivel de toda la pila tecnológica.