by Rachid Guerraoui, Luís Rodrigues
In modern computing a program is usually distributed among several processes. The fundamental challenge when developing reliable distributed programs is to support the cooperation of processes requ…