github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/docs/RFCS/20191014_savepoints/distsender.puml (about) 1 @startuml 2 box "On any node using txns" 3 participant "client.Txn" as Txn 4 participant TxnCoordSender 5 participant DistSender 6 end box 7 box "Elsewhere" 8 participant leaseholder1 9 participant leaseholder2 10 participant leaseholder3 11 end box 12 13 Txn -> TxnCoordSender : sender.Send(BatchRequest) 14 TxnCoordSender -> TxnCoordSender : (some txn logic) 15 TxnCoordSender -> DistSender : sender.Send(BatchRequest) 16 DistSender -> leaseholder1 : (distribute batch) 17 DistSender -> leaseholder2 : (distribute batch) 18 DistSender -> leaseholder3 : (distribute batch) 19 leaseholder1 --> DistSender : BatchResponse 20 leaseholder2 --> DistSender : BatchResponse 21 leaseholder3 --> DistSender : BatchResponse 22 DistSender -> DistSender : (merge responses) 23 DistSender --> TxnCoordSender : BatchResponse 24 TxnCoordSender -> TxnCoordSender : (some txn logic) 25 TxnCoordSender --> Txn : BatchResponse 26 @enduml