github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/docs/tech-notes/txn_coord_sender/erecovery.puml (about)

     1  @startuml
     2  participant "client.Txn" as Txn
     3  participant TxnCoordSender
     4  participant interceptors
     5  
     6  Txn -> TxnCoordSender : (first instantiation)
     7  TxnCoordSender -> TxnCoordSender : init txn object (epoch = 1)
     8  activate TxnCoordSender
     9  ...
    10  Txn -> TxnCoordSender : Send(BatchRequest)
    11  TxnCoordSender -> interceptors : Send(BatchRequest)
    12  ...
    13  interceptors -[#red]-> TxnCoordSender : recoverable error!
    14  deactivate TxnCoordSender
    15  TxnCoordSender -> TxnCoordSender : new txn object (epoch++)
    16  activate TxnCoordSender
    17  TxnCoordSender -> Txn : retry error
    18  ...
    19  Txn -> TxnCoordSender : Send(BatchRequest)
    20  TxnCoordSender -> interceptors : Send(BatchRequest)
    21  ...
    22  @enduml