```plantuml actor "user" as user participant "everpro-wallet" as wallet participant "everpro-payment" as payment participant "everpro-logistic-client" as elc user -> wallet : pay with popcash wallet -> wallet : begin db transaction wallet -> wallet : create mutation wallet -> payment : update status payment (with context.Background()) payment -> elc : generate awb (with goroutine) wallet -> wallet : context timeout 10s wallet -> wallet : rollback triggered because context timeout wallet -> user : error but payment is paid ```