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