diff options
Diffstat (limited to 'weed/pb/mq_agent.proto')
| -rw-r--r-- | weed/pb/mq_agent.proto | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/weed/pb/mq_agent.proto b/weed/pb/mq_agent.proto new file mode 100644 index 000000000..605f2a31c --- /dev/null +++ b/weed/pb/mq_agent.proto @@ -0,0 +1,95 @@ +syntax = "proto3"; + +package messaging_pb; + +import "mq_schema.proto"; + +option go_package = "github.com/seaweedfs/seaweedfs/weed/pb/mq_agent_pb"; +option java_package = "seaweedfs.mq_agent"; +option java_outer_classname = "MessageQueueAgentProto"; + +////////////////////////////////////////////////// + +service SeaweedMessagingAgent { + + // Publishing + rpc StartPublishSession (StartPublishSessionRequest) returns (StartPublishSessionResponse) { + } + rpc ClosePublishSession (ClosePublishSessionRequest) returns (ClosePublishSessionResponse) { + } + rpc PublishRecord (stream PublishRecordRequest) returns (stream PublishRecordResponse) { + } + + // Subscribing + rpc StartSubscribeSession (StartSubscribeSessionRequest) returns (StartSubscribeSessionResponse) { + } + rpc CloseSubscribeSession (CloseSubscribeSessionRequest) returns (CloseSubscribeSessionResponse) { + } + rpc SubscribeRecord (stream SubscribeRecordRequest) returns (stream SubscribeRecordResponse) { + } + +} + +////////////////////////////////////////////////// +message StartPublishSessionRequest { + schema_pb.Topic topic = 1; + int32 partition_count = 2; + schema_pb.RecordType record_type = 3; + string publisher_name = 4; +} +message StartPublishSessionResponse { + string error = 1; + int64 session_id = 2; +} +message ClosePublishSessionRequest { + int64 session_id = 1; +} +message ClosePublishSessionResponse { + string error = 1; +} + +////////////////////////////////////////////////// +message PublishRecordRequest { + int64 session_id = 1; // session_id is required for the first record + bytes key = 2; + schema_pb.RecordValue value = 3; +} +message PublishRecordResponse { + int64 ack_sequence = 1; + string error = 2; +} +////////////////////////////////////////////////// +message StartSubscribeSessionRequest { + string consumer_group = 1; + string consumer_group_instance_id = 2; + schema_pb.Topic topic = 4; + repeated schema_pb.PartitionOffset partition_offsets = 5; + string filter = 6; + int32 max_subscribed_partitions = 8; + int32 sliding_window_size = 9; +} +message StartSubscribeSessionResponse { + string error = 1; + int64 session_id = 2; +} +message CloseSubscribeSessionRequest { + int64 session_id = 1; +} +message CloseSubscribeSessionResponse { + string error = 1; +} +////////////////////////////////////////////////// +message SubscribeRecordRequest { + int64 session_id = 1; // session_id is required for the first record + int64 ack_sequence = 2; + bytes ack_key = 3; +} +message SubscribeRecordResponse { + bytes key = 2; + schema_pb.RecordValue value = 3; + int64 ts_ns = 4; + string error = 5; + bool is_end_of_stream = 6; + bool is_end_of_topic = 7; +} +////////////////////////////////////////////////// |
