Ingeniero de Software: pregunta de entrevista

¿Cómo razonas sobre consistencia y disponibilidad?

Durante una partición de red una operación distribuida no puede garantizar a la vez consistencia inmediata y que todas las respuestas tengan éxito. Decide por invariante: rechaza escrituras inseguras o acepta obsolescencia temporal con reconciliación.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Cuando los nodos no pueden hablarse, una escritura puede rechazarse hasta que la partición sane, manteniendo todas las réplicas consistentes, o aceptarse en el lado que la recibió, manteniendo el servicio disponible a costa de copias divergentes que luego hay que reconciliar. La elección se hace por operación, no por sistema: una transferencia de saldo no tolera divergencia, un contador de me gusta sí. La mayoría de diseños mezclan ambos, con un almacén fuertemente consistente para invariantes que deben cumplirse y replicación eventual para lo demás, y hacen explícita la semántica de lectura para que los clientes sepan cuándo pueden ver datos obsoletos.

Ejemplo

Un sistema de inventario rechaza una venta cuando no alcanza la primaria de ese SKU, porque sobrevender cuesta más que un checkout rechazado; el mismo sistema sirve descripciones de producto desde cualquier réplica aunque lleven un minuto de retraso. Un documento colaborativo acepta ediciones sin conexión y las fusiona con CRDTs porque perder lo que escribe un usuario es peor que una inconsistencia breve.

Errores frecuentes

  • Aplicar una única elección de consistencia a todo el sistema sin mirar cada invariante.
  • Afirmar que un sistema es siempre consistente y siempre disponible bajo partición.
  • Servir lecturas obsoletas sin decir a los clientes que los datos pueden estar desactualizados.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Ingeniero de Software