syntax = "proto3";
package raftpb;
import "google/protobuf/empty.proto";
import "google/protobuf/wrappers.proto";
message RaftRequest {
bytes data = 1;
}
message RaftReply {
bytes data = 1;
bytes error = 2;
}
message VoteRequest {
bytes value = 1;
}
message VoteReply {
bytes value = 1;
}
message AppendRequest {
bytes value = 1;
}
message AppendReply {
bytes value = 1;
}
message SnapshotRequest {
bytes value = 1;
}
message SnapshotReply {
bytes value = 1;
}
message JoinRequest {
uint64 node_id = 1;
string endpoint = 2;
}
message JoinReply {
bytes value = 1;
}
service RaftService {
// Forward a request to another node.
rpc Forward(RaftRequest) returns (RaftReply);
// Raft Internal
rpc Append(AppendRequest) returns (AppendReply) {}
rpc Vote(VoteRequest) returns (VoteReply) {}
rpc Snapshot(SnapshotRequest) returns (SnapshotReply) {}
}