-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathensync.proto
More file actions
167 lines (138 loc) · 3.46 KB
/
ensync.proto
File metadata and controls
167 lines (138 loc) · 3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
syntax = "proto3";
package ensync;
option java_multiple_files = true;
option java_package = "io.opensink.master.grpc.ensync";
option java_outer_classname = "EnSyncProto";
// Main EnSync service for client communication
service EnSyncService {
// Connection & Authentication
rpc Connect(ConnectRequest) returns (ConnectResponse);
rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse);
// Message Publishing
rpc PublishMessage(PublishMessageRequest) returns (PublishMessageResponse);
// Message Subscription - Returns a stream of messages
rpc Subscribe(SubscribeRequest) returns (stream MessageStreamResponse);
rpc Unsubscribe(UnsubscribeRequest) returns (UnsubscribeResponse);
// Message Management
rpc AcknowledgeMessage(AcknowledgeRequest) returns (AcknowledgeResponse);
rpc DeferMessage(DeferRequest) returns (DeferResponse);
rpc DiscardMessage(DiscardRequest) returns (DiscardResponse);
rpc ReplayMessage(ReplayRequest) returns (ReplayResponse);
// Flow Control
rpc PauseMessages(PauseRequest) returns (PauseResponse);
rpc ContinueMessages(ContinueRequest) returns (ContinueResponse);
}
// Connection Messages
message ConnectRequest {
string access_key = 1;
}
message ConnectResponse {
bool success = 1;
string client_id = 2;
string client_hash = 3;
map<string, string> server_config = 4;
string error_message = 5;
}
message HeartbeatRequest {
string client_id = 1;
}
message HeartbeatResponse {
bool success = 1;
}
// Message Publishing Messages
message PublishMessageRequest {
string client_id = 1;
string message_name = 2;
string payload = 3;
string delivery_to = 4;
string metadata = 5;
optional string payload_metadata = 6;
}
message PublishMessageResponse {
bool success = 1;
string message_idem = 2;
string error_message = 3;
}
// Message Subscription Messages
message SubscribeRequest {
string client_id = 1;
string message_name = 2;
}
message UnsubscribeRequest {
string client_id = 1;
string message_name = 2;
}
message UnsubscribeResponse {
bool success = 1;
string message = 2;
}
message MessageStreamResponse {
string message_idem = 1;
string message_name = 2;
string payload = 3;
int64 partition_block = 4;
string metadata = 5;
string sender = 6;
}
// Message Management Messages
message AcknowledgeRequest {
string client_id = 1;
string message_idem = 2;
string message_name = 3;
int64 partition_block = 4;
}
message AcknowledgeResponse {
bool success = 1;
string message = 2;
}
message DeferRequest {
string client_id = 1;
string message_idem = 2;
string message_name = 3;
int64 delay_ms = 4;
int32 priority = 5;
string reason = 6;
}
message DeferResponse {
bool success = 1;
string message = 2;
int64 delivery_time = 3;
}
message DiscardRequest {
string client_id = 1;
string message_idem = 2;
string message_name = 3;
string reason = 4;
}
message DiscardResponse {
bool success = 1;
string message = 2;
}
message ReplayRequest {
string client_id = 1;
string message_idem = 2;
string message_name = 3;
}
message ReplayResponse {
bool success = 1;
string message = 2;
string message_data = 3;
}
// Flow Control Messages
message PauseRequest {
string client_id = 1;
string message_name = 2;
string reason = 3;
}
message PauseResponse {
bool success = 1;
string message = 2;
}
message ContinueRequest {
string client_id = 1;
string message_name = 2;
}
message ContinueResponse {
bool success = 1;
string message = 2;
}