syntax = "proto3"; import "google/protobuf/empty.proto"; package remote; service RemoteCache { rpc Get (GetRequest) returns (GetReply) {} rpc Heartbeat (HeartbeatRequest) returns (google.protobuf.Empty) {} rpc Set (SetRequest) returns (google.protobuf.Empty) {} } message GetRequest { string namespace = 1; bytes key = 2; bool assign = 3; } message GetReply { oneof entry_status { google.protobuf.Empty unassigned = 1; AssignReply assign = 2; google.protobuf.Empty loading = 3; bytes ready = 4; } } message AssignReply { uint64 id = 1; uint64 heartbeat_interval_ms = 2; } message HeartbeatRequest { uint64 id = 1; } message SetRequest { uint64 id = 1; bytes value = 2; }