Definición
Un protocolo ejecutado por múltiples nodos en un sistema distribuido que les permite ponerse de acuerdo en un único valor o secuencia de valores a pesar de fallos parciales y de la incertidumbre temporal, sujeto a las suposiciones del modelo del sistema.
Principio
Principio
Combina propuesta, reglas de voto/quórum y replicación de estado (a menudo con elección de líder, replicación de registro o certificaciones de quórum) para garantizar seguridad (ningún nodo correcto decide de forma diferente) y liveness/progreso (bajo las suposiciones de tiempo y fallo del modelo).
Demostración
Demostración
Un servicio replicado de clave‑valor usa una instancia de consenso para confirmar una escritura de cliente: un líder propone la actualización, las réplicas la aceptan y la añaden a sus registros, y una vez que un quórum reconoce, la actualización se decide y se aplica en cada réplica en el mismo orden.
Aplicación incorrecta
Aplicación incorrecta
Usar un protocolo de consenso sin verificar las suposiciones del modelo (por ejemplo, asumir sincronía cuando la red puede sufrir retrasos arbitrarios) o invocar consenso para operaciones que no requieren acuerdo global, incurriendo en latencia y complejidad innecesarias.
Consecuencia
Consecuencia
Correctamente usado, el consenso proporciona un orden linealizado compartido de operaciones entre nodos, posibilitando replicación consistente, cambios de configuración coordinados y servicios tolerantes a fallos; suele aumentar la latencia y exigir la participación de un quórum.
Inversión
Inversión
Ausencia de consenso: las réplicas pueden divergir, confirmando valores contradictorios de forma independiente y produciendo vistas inconsistentes para los clientes; la coordinación recurre a mecanismos ad hoc o garantías más débiles.
Límite
Límite
Se aplica a sistemas distribuidos que buscan acuerdo sobre valores bajo modelos de fallo específicos (crash‑stop, bizantino) y suposiciones temporales (sincrónica, parcialmente sincrónica, asincrónica). No es una solución universal: la factibilidad y las garantías dependen de estas suposiciones y de resultados de imposibilidad conocidos en asincronía pura sin detectores de fallos.
Tensión semántica
Tensión semántica
Tensión entre seguridad y liveness según las suposiciones de fallo/tiempo: algunos protocolos priorizan la seguridad a costa del progreso en condiciones extremas; también hay tensión entre consenso fuerte (orden total, líder único) y primitivas de coordinación más ligeras (difusión atómica, quórums sin líder) que intercambian simplicidad, rendimiento y disponibilidad.
Síntesis
Síntesis
Un algoritmo de consenso es un protocolo de coordinación que, bajo supuestos explícitos, alinea réplicas sobre un valor único o una secuencia ordenada combinando propuesta, votación/quórum y mecanismos de replicación para lograr un acuerdo coherente y tolerante a fallos.