aboutsummaryrefslogtreecommitdiff
path: root/weed/pb/messaging.proto
diff options
context:
space:
mode:
Diffstat (limited to 'weed/pb/messaging.proto')
-rw-r--r--weed/pb/messaging.proto76
1 files changed, 76 insertions, 0 deletions
diff --git a/weed/pb/messaging.proto b/weed/pb/messaging.proto
new file mode 100644
index 000000000..050c6fb17
--- /dev/null
+++ b/weed/pb/messaging.proto
@@ -0,0 +1,76 @@
+syntax = "proto3";
+
+package messaging_pb;
+
+option java_package = "seaweedfs.client";
+option java_outer_classname = "MessagingProto";
+
+//////////////////////////////////////////////////
+
+service SeaweedMessaging {
+
+ rpc Subscribe (SubscribeRequest) returns (stream Message) {
+ }
+
+ rpc Publish (stream PublishRequest) returns (stream PublishResponse) {
+ }
+
+ rpc ConfigureTopic (ConfigureTopicRequest) returns (ConfigureTopicResponse) {
+ }
+
+ rpc GetTopicConfiguration (GetTopicConfigurationRequest) returns (GetTopicConfigurationResponse) {
+ }
+
+}
+
+//////////////////////////////////////////////////
+
+message SubscribeRequest {
+ string namespace = 1;
+ string topic = 2;
+ int32 partition = 3;
+ enum StartPosition {
+ LATEST = 0; // Start at the newest message
+ EARLIEST = 1; // Start at the oldest message
+ TIMESTAMP = 2; // Start after a specified timestamp, exclusive
+ }
+ StartPosition startPosition = 4; // Where to begin consuming from
+ int64 timestampNs = 5; // timestamp in nano seconds
+}
+
+message Message {
+ int64 timestamp = 1 [jstype = JS_STRING]; // When the message was received by the broker
+ bytes key = 2; // Message key
+ bytes value = 3; // Message payload
+ map<string, bytes> headers = 4; // Message headers
+}
+
+message PublishRequest {
+ string namespace = 1; // only needed on the initial request
+ string topic = 2; // only needed on the initial request
+ int32 partition = 4;
+ bytes key = 5; // Message key
+ bytes value = 6; // Message payload
+ map<string, bytes> headers = 7; // Message headers
+}
+
+message PublishResponse {
+ int32 partition_count = 1;
+}
+
+message ConfigureTopicRequest {
+ string namespace = 1;
+ string topic = 2;
+ int32 partition_count = 3;
+ string collection = 4;
+}
+message ConfigureTopicResponse {
+}
+
+message GetTopicConfigurationRequest {
+ string namespace = 1;
+ string topic = 2;
+}
+message GetTopicConfigurationResponse {
+ int32 partitions = 3;
+}