dtmcli

A Ruby SDK for distributed transaction manager dtm

Usage

gem install dtmcli

Example

Business case description

dtm_url = '127.0.0.1:8080/api/dtm'
biz_url = '127.0.0.1:3000/api/biz'

# TCC version
res = Dtmcli::Tcc.tcc_global_transaction(dtm_url) do |tcc|
  body = {amount: 30}
  print "calling trans out\n"
  tcc.call_branch(body, biz_url + '/TransOutTry', biz_url + '/TransOutConfirm', biz_url + '/TransOutCancel')
  print "calling trans in\n"
  tcc.call_branch(body, biz_url + '/TransInTry', biz_url + '/TransInConfirm', biz_url + '/TransInCancel')
end