The consensus problem is a fundamental building block of distributed computing. Solutions to this problem can be found in the large-scale systems that run the Cloud, as well as in the programming librairies of multicore architectures.
Consensus requires the processes to reach an agreement on a common value. In simple terms, this problem can be formulated as follow. Consider a set of processes that communicate by reading/writing a shared memory.