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