mirror of https://github.com/dtm-labs/dtm.git
csharpjavadistributed-transactionsdtmgogolangmicroservicenodejsphpdatabasesagaseatatcctransactiontransactionsxapythondistributed
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
66 lines
1.8 KiB
syntax = "proto3";
|
|
|
|
option go_package = "github.com/yedf/dtm/dtmgrpc";
|
|
import "google/protobuf/empty.proto";
|
|
|
|
package dtmgrpc;
|
|
|
|
// The dtm service definition.
|
|
service Dtm {
|
|
rpc NewGid(google.protobuf.Empty) returns (DtmGidReply) {}
|
|
rpc Submit(DtmRequest) returns (google.protobuf.Empty) {}
|
|
rpc Prepare(DtmRequest) returns (google.protobuf.Empty) {}
|
|
rpc Abort(DtmRequest) returns (google.protobuf.Empty) {}
|
|
rpc RegisterTccBranch(DtmTccBranchRequest) returns (google.protobuf.Empty) {}
|
|
rpc RegisterXaBranch(DtmXaBranchRequest) returns (google.protobuf.Empty) {}
|
|
}
|
|
|
|
// DtmRequest 发给dtm服务器的消息,响应为Emtpy,error == nil为成功,== Aborted 为失败 == 其他 可以重试
|
|
message DtmRequest {
|
|
string Gid = 1;
|
|
string TransType = 2;
|
|
// QueryPrepared 对于事务消息处于prepared状态过期,责护查询QueryPrepared
|
|
string QueryPrepared = 3;
|
|
// WaitResult 设定这个值,Submit操作会等待dtm处理一次请求,可能在返回时,就可以把分布式事务完成
|
|
bool WaitResult = 4;
|
|
// Data 包含saga、msg的子事务信息
|
|
string Data = 5;
|
|
}
|
|
|
|
message DtmGidReply {
|
|
string Gid = 1;
|
|
}
|
|
// BranchInfo 事务分支信息
|
|
message BranchInfo {
|
|
string Gid = 1;
|
|
string TransType = 2;
|
|
string BranchID = 3;
|
|
string BranchType = 4;
|
|
}
|
|
|
|
message DtmTccBranchRequest {
|
|
BranchInfo Info = 1;
|
|
string BusiData = 2;
|
|
string Try = 3;
|
|
string Confirm = 4;
|
|
string Cancel = 5;
|
|
}
|
|
|
|
message DtmXaBranchRequest {
|
|
BranchInfo Info = 1;
|
|
string BusiData = 2;
|
|
// dtm通知业务提交和回滚的地址
|
|
string Notify = 3;
|
|
}
|
|
|
|
// BusiRequest 请求业务的数据,需要携带事务信息,便于业务进行幂等处理
|
|
message BusiRequest {
|
|
BranchInfo Info = 1;
|
|
string Dtm = 2;
|
|
bytes BusiData = 3;
|
|
}
|
|
|
|
// BusiReply 业务响应数据
|
|
message BusiReply {
|
|
bytes BusiData = 1;
|
|
}
|