syntax = "proto2"; import "store/common/common-proto.proto"; package tapirstore.proto; message GetMessage { required string key = 1; optional TimestampMessage timestamp = 2; } message PrepareMessage { required TransactionMessage txn = 1; optional TimestampMessage timestamp = 2; } message CommitMessage { required uint64 timestamp = 1; } message AbortMessage { required TransactionMessage txn = 1; } message Request { enum Operation { GET = 1; PREPARE = 2; COMMIT = 3; ABORT = 4; } required Operation op = 1; required uint64 txnid = 2; optional GetMessage get = 3; optional PrepareMessage prepare = 4; optional CommitMessage commit = 5; optional AbortMessage abort = 6; } message Reply { // 0 = OK // -1 = failed // -2 = retry // -3 = abstain/no reply required int32 status = 1; optional string value = 2; optional TimestampMessage timestamp = 3; }