El problema del consenso es un problema fundamental de los sistemas distribuidos que consiste en poner de acuerdo a múltiples procesos en algo.
En general, los sistemas distribuidos son propensos a fallos ya sea por caídas o fallos intencionados (problema de los generales bizantinos).
Sin embargo, es un reto mantener la consistencia entre los nodos que comparten información a la vez en un entorno en el que puede haber fallos (sistema tolerante de fallos).
Por ejemplo: supongamos una base de datos distribuida que replica un estado común.
A continuación, cada proceso fija un valor en una variable de decisión
Cuando lo hace, entra en el estado decidido, en el cual ya no se podrá cambiar
Se han elaborado distintos protocolos o algoritmos que solucionan este tipo de problemas.
Cada uno se aplica para cierto tipo de entornos y tienen sus propias características.