Pregunta de entrevista para Site Reliability Engineer

¿Por qué los reintentos ingenuos empeoran una caída y cómo diseñarías una política de reintentos segura?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Los reintentos ingenuos multiplican la carga justo cuando un servicio ya está sufriendo, y los clientes sincronizados reintentan en oleadas acompasadas. Usa backoff exponencial con jitter completo, limita el total de intentos y reintenta solo operaciones idempotentes ante errores reintentables. Añade un presupuesto de reintentos en el cliente para que los reintentos sigan siendo una fracción pequeña del tráfico, más un circuit breaker que corte las llamadas del todo cuando la tasa de fallo se dispara. Nunca reintentes de forma independiente en cada capa de la pila.

Por qué lo preguntan los entrevistadores

Las tormentas de reintentos son una de las causas más comunes de que un fallo pequeño se convierta en una caída total, así que esta pregunta separa a quien ha depurado un fallo en cascada real de quien solo ha configurado una librería cliente. El entrevistador quiere jitter, presupuestos, idempotencia y, sobre todo, el punto de que los reintentos por capas multiplican los intentos.

Cómo estructurar tu respuesta

  • Explica la amplificación: los reintentos añaden carga durante el fallo.
  • Nombra el jitter en concreto, no solo el backoff exponencial.
  • Restringe los reintentos a operaciones idempotentes y códigos de estado reintentables.
  • Añade un presupuesto de reintentos y un circuit breaker como techo.
  • Advierte de la multiplicación entre capas anidadas.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

El problema es que los reintentos son carga extra aplicada en el peor momento posible. Si un servicio falla al 50% y cada cliente reintenta tres veces, acabas de triplicar el tráfico que golpea algo que ya está por encima de su capacidad, y nunca tiene ocasión de recuperarse. El backoff exponencial a secas tampoco basta, porque todos tus clientes fallaron en el mismo instante, así que todos se despiertan en el mismo instante. El jitter completo lo arregla: la espera es un valor aleatorio entre cero y el techo de backoff actual. Más allá de eso, solo reintentaría llamadas idempotentes, solo ante 503, 429 y errores a nivel de conexión, nunca ante un 400, y aplicaría un presupuesto de reintentos para que estos queden limitados a algo así como el 10% del total de peticiones. La que nos mordió fue el apilamiento por capas. El SDK reintentaba tres veces, la malla reintentaba dos y el ejecutor de trabajos reintentaba otra vez, o sea dieciocho intentos para una sola llamada lógica.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Qué es el jitter completo frente al jitter descorrelacionado?
  • ¿Qué códigos de estado HTTP son seguros de reintentar y por qué?
  • ¿Cómo evitarías que los reintentos se multipliquen a través de una malla de servicios?

Más preguntas para Site Reliability Engineer

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot