Skip to content

Instantly share code, notes, and snippets.

@kykl
Created July 13, 2021 17:07
Show Gist options
  • Save kykl/4a3f8014f3e3cfed762a7ae37f7668e1 to your computer and use it in GitHub Desktop.
Save kykl/4a3f8014f3e3cfed762a7ae37f7668e1 to your computer and use it in GitHub Desktop.
syntax = "proto3";
package encore;
import "google/protobuf/timestamp.proto";
message ClapRequest {
string show_id = 1;
string user_id = 2;
uint32 count = 3;
}
message RankRequest {
string show_id = 1;
string user_id = 2;
}
message ClapRank {
uint32 rank = 1;
google.protobuf.Timestamp ts = 2;
}
message TopClappersRequest {
string show_id = 1;
uint32 rate = 2;
}
message RankedUser {
string user_id = 1;
uint32 count = 2;
uint32 rank = 3;
}
message RankedUsers {
repeated RankedUser users = 1;
string show_id = 2;
google.protobuf.Timestamp ts = 3;
}
message RankRangeRequest {
string show_id = 1;
string user_id = 2;
uint32 rate = 3;
}
message HeartbeatRequest {
string user_id = 1;
}
message Ack {
google.protobuf.Timestamp ts = 1;
}
service Clap {
rpc Clap (ClapRequest) returns (Ack);
rpc Heartbeat (HeartbeatRequest) returns (Ack);
rpc GetRank (RankRequest) returns (ClapRank);
rpc SubscribeTopClappers (TopClappersRequest) returns (stream RankedUsers);
rpc SubscribeRankRange (RankRangeRequest) returns (stream RankedUsers);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment