A brief history of Consensus, 2PC and Transaction Commit
This is a potted history of consensus, transactions and 2PC. Reading the literature on consensus is difficult because the language changes (consensus was originally called agreement), the results come in an order that isn’t logical, and the whole framework for describing distributed algorithms evolved in parallel with the work. Also, there are few books other than Lynch’s Distributed Algorithms that cover the subject.