@startuml title Paxos 1 /' ======= style ======= '/ skinparam sequence { ArrowColor black LifeLineBorderColor black ParticipantBorderColor black ParticipantBackgroundColor white ParticipantPadding 20 } /' ======= node name ======= '/ /' === proposers === '/ participant proposer1 activate proposer1 participant proposer2 activate proposer2 /' === acceptors === '/ participant acceptor1 activate acceptor1 participant acceptor2 activate acceptor2 participant acceptor3 activate acceptor3 /' === learners === '/ participant learner1 activate learner1 /' ======= uml ======= '/ proposer1 -> acceptor1:Prepare request \n\ Proposal(7, 1) proposer1 -> acceptor2 proposer1 -> acceptor3 acceptor1 --> proposer1:Promise Success\n\ Proposal(7, 1) acceptor2 --> proposer1 acceptor3 --> proposer1 proposer2 -> acceptor1:Prepare request \n\ Proposal(8, 2) proposer2 -> acceptor2 proposer2 -> acceptor3 acceptor1 --> proposer2:Promise Success\n\ Proposal(8, 2) acceptor2 --> proposer2 acceptor3 --> proposer2 proposer2 -> acceptor1:Accept request \n\ Proposal(8, 2) proposer2 -> acceptor2 proposer2 -> acceptor3 acceptor1 --> proposer2:Accept \n\ Proposal(8, 2) acceptor1 -> learner1:Accept \n\ Proposal(8, 2) acceptor2 --> proposer2:Accept \n\ Proposal(8, 2) acceptor2 -> learner1:Accept \n\ Proposal(8, 2) learner1 -> learner1:chosen \n\ Proposal(8, 2) @enduml