event_store_client 0.2.8 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +29 -37
- data/lib/event_store_client.rb +0 -2
- data/lib/event_store_client/adapters/grpc.rb +21 -0
- data/lib/event_store_client/adapters/grpc/Protos/cluster.proto +149 -0
- data/lib/event_store_client/adapters/grpc/Protos/gossip.proto +44 -0
- data/lib/event_store_client/adapters/grpc/Protos/operations.proto +45 -0
- data/lib/event_store_client/adapters/grpc/Protos/persistent.proto +180 -0
- data/lib/event_store_client/adapters/grpc/Protos/projections.proto +174 -0
- data/lib/event_store_client/adapters/grpc/Protos/shared.proto +22 -0
- data/lib/event_store_client/adapters/grpc/Protos/streams.proto +242 -0
- data/lib/event_store_client/adapters/grpc/Protos/users.proto +119 -0
- data/lib/event_store_client/adapters/grpc/client.rb +119 -0
- data/lib/event_store_client/adapters/grpc/command_registrar.rb +32 -0
- data/lib/event_store_client/adapters/grpc/commands/command.rb +43 -0
- data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/create.rb +46 -0
- data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/delete.rb +34 -0
- data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/read.rb +66 -0
- data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/settings_schema.rb +38 -0
- data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/update.rb +48 -0
- data/lib/event_store_client/adapters/grpc/commands/projections/create.rb +45 -0
- data/lib/event_store_client/adapters/grpc/commands/projections/delete.rb +34 -0
- data/lib/event_store_client/adapters/grpc/commands/projections/update.rb +42 -0
- data/lib/event_store_client/adapters/grpc/commands/streams/append.rb +57 -0
- data/lib/event_store_client/adapters/grpc/commands/streams/delete.rb +35 -0
- data/lib/event_store_client/adapters/grpc/commands/streams/link_to.rb +53 -0
- data/lib/event_store_client/adapters/grpc/commands/streams/read.rb +80 -0
- data/lib/event_store_client/adapters/grpc/commands/streams/read_all.rb +43 -0
- data/lib/event_store_client/adapters/grpc/commands/streams/tombstone.rb +35 -0
- data/lib/event_store_client/adapters/grpc/connection.rb +50 -0
- data/lib/event_store_client/adapters/grpc/generated/cluster_pb.rb +140 -0
- data/lib/event_store_client/adapters/grpc/generated/cluster_services_pb.rb +46 -0
- data/lib/event_store_client/adapters/grpc/generated/gossip_pb.rb +53 -0
- data/lib/event_store_client/adapters/grpc/generated/gossip_services_pb.rb +26 -0
- data/lib/event_store_client/adapters/grpc/generated/operations_pb.rb +49 -0
- data/lib/event_store_client/adapters/grpc/generated/operations_services_pb.rb +31 -0
- data/lib/event_store_client/adapters/grpc/generated/persistent_pb.rb +213 -0
- data/lib/event_store_client/adapters/grpc/generated/persistent_services_pb.rb +29 -0
- data/lib/event_store_client/adapters/grpc/generated/projections_pb.rb +193 -0
- data/lib/event_store_client/adapters/grpc/generated/projections_services_pb.rb +34 -0
- data/lib/event_store_client/adapters/grpc/generated/shared_pb.rb +35 -0
- data/lib/event_store_client/adapters/grpc/generated/streams_pb.rb +283 -0
- data/lib/event_store_client/adapters/grpc/generated/streams_services_pb.rb +29 -0
- data/lib/event_store_client/adapters/grpc/generated/users_pb.rb +126 -0
- data/lib/event_store_client/adapters/grpc/generated/users_services_pb.rb +33 -0
- data/lib/event_store_client/adapters/http.rb +16 -0
- data/lib/event_store_client/adapters/http/README.md +16 -0
- data/lib/event_store_client/adapters/http/client.rb +160 -0
- data/lib/event_store_client/adapters/http/commands/command.rb +27 -0
- data/lib/event_store_client/adapters/http/commands/persistent_subscriptions/ack.rb +15 -0
- data/lib/event_store_client/adapters/http/commands/persistent_subscriptions/create.rb +31 -0
- data/lib/event_store_client/adapters/http/commands/persistent_subscriptions/read.rb +57 -0
- data/lib/event_store_client/adapters/http/commands/projections/create.rb +30 -0
- data/lib/event_store_client/adapters/http/commands/streams/append.rb +49 -0
- data/lib/event_store_client/adapters/http/commands/streams/delete.rb +16 -0
- data/lib/event_store_client/adapters/http/commands/streams/link_to.rb +49 -0
- data/lib/event_store_client/adapters/http/commands/streams/read.rb +53 -0
- data/lib/event_store_client/adapters/http/commands/streams/tombstone.rb +17 -0
- data/lib/event_store_client/adapters/http/connection.rb +46 -0
- data/lib/event_store_client/adapters/http/request_method.rb +28 -0
- data/lib/event_store_client/adapters/in_memory.rb +139 -0
- data/lib/event_store_client/broker.rb +16 -5
- data/lib/event_store_client/client.rb +17 -69
- data/lib/event_store_client/configuration.rb +28 -14
- data/lib/event_store_client/data_decryptor.rb +13 -8
- data/lib/event_store_client/data_encryptor.rb +7 -6
- data/lib/event_store_client/deserialized_event.rb +4 -1
- data/lib/event_store_client/event.rb +2 -2
- data/lib/event_store_client/mapper/default.rb +0 -1
- data/lib/event_store_client/serializer/json.rb +2 -0
- data/lib/event_store_client/subscriptions.rb +4 -13
- data/lib/event_store_client/types.rb +3 -1
- data/lib/event_store_client/value_objects/read_direction.rb +43 -0
- data/lib/event_store_client/version.rb +1 -1
- metadata +97 -15
- data/lib/event_store_client/store_adapter.rb +0 -10
- data/lib/event_store_client/store_adapter/api/client.rb +0 -224
- data/lib/event_store_client/store_adapter/api/connection.rb +0 -43
- data/lib/event_store_client/store_adapter/api/request_method.rb +0 -30
- data/lib/event_store_client/store_adapter/in_memory.rb +0 -160
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6c10b40181ca8912df10da9e73f9bc6f1416a7f9bd495982906467562b690cb2
|
|
4
|
+
data.tar.gz: 2e8ffe26ecb7434dd4c67636e45ece323b64dd62677931462f177cbfb319c94e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 16ad845ec3e6b0e32d039c2ac36bac1cd425b886b5867fd6c5565f540c05340354cf6352f553a968e95b4402314446e89859261a2fa0e774098c7fa5389430fe
|
|
7
|
+
data.tar.gz: 524a554f53aee5c6eacd42cf750d5b937a56758b5b5fae60a4b92e6a50f00c0783c843ca58dbdfe5d74398f0d73ed82cb98f6d4ce112d955fca81f382acebfea
|
data/README.md
CHANGED
|
@@ -3,8 +3,16 @@
|
|
|
3
3
|
|
|
4
4
|
# EventStoreClient
|
|
5
5
|
|
|
6
|
+
### Broken version. Please use version 0.2.3 until the next release happen. Fixes will be applied in 0.3.0
|
|
7
|
+
|
|
6
8
|
An easy-to use API client for connecting ruby applications with https://eventstore.org/
|
|
7
9
|
|
|
10
|
+
## Supported adapters
|
|
11
|
+
|
|
12
|
+
- GRPC - default
|
|
13
|
+
- [HTTP](https://github.com/yousty/event_store_client/tree/master/lib/event_store_client/adapters/http/README.md) - Deprecated
|
|
14
|
+
- Memory - for testing
|
|
15
|
+
|
|
8
16
|
## Installation
|
|
9
17
|
Add this line to your application's Gemfile:
|
|
10
18
|
|
|
@@ -24,6 +32,8 @@ $ gem install event_store_client
|
|
|
24
32
|
|
|
25
33
|
## Usage
|
|
26
34
|
|
|
35
|
+
Before you start, make sure you have a running EventStoreDB instance on your machine
|
|
36
|
+
|
|
27
37
|
### EventStore engine setup
|
|
28
38
|
|
|
29
39
|
1. Download Event Store From https://eventstore.org/downloads/ or docker
|
|
@@ -32,33 +42,13 @@ $ gem install event_store_client
|
|
|
32
42
|
|
|
33
43
|
2. Run the Event Store server
|
|
34
44
|
|
|
35
|
-
`docker run --name eventstore -it -p 2113:2113 -p 1113:1113 eventstore/eventstore`
|
|
36
|
-
|
|
37
|
-
3. Set Basic HTTP auth enviornment variables #below are defaults
|
|
38
|
-
- export EVENT_STORE_USER=admin
|
|
39
|
-
- export EVENT_STORE_PASSWORD=changeit
|
|
40
|
-
|
|
41
|
-
Ref: https://eventstore.org/docs/http-api/security
|
|
42
|
-
|
|
43
|
-
4. Login to admin panel http://localhost:2113 and enable Projections for Event-Types
|
|
44
|
-
|
|
45
|
-
### Configure EventStoreClient
|
|
46
|
-
|
|
47
|
-
Before you start, add this to the `initializer` or to the top of your script:
|
|
48
|
-
|
|
49
|
-
`EventStoreClient.configure`
|
|
50
|
-
|
|
51
|
-
For testing, you can use the InMemory adapter. To do it you should change the configuration.
|
|
45
|
+
`docker run --env EVENTSTORE_INSECURE=true --name eventstore -it -p 2113:2113 -p 1113:1113 eventstore/eventstore`
|
|
52
46
|
|
|
53
|
-
|
|
54
|
-
EventStoreClient.configure do |config|
|
|
55
|
-
config.adapter = EventStoreClient::StoreAdapter::InMemory.new(host: 'http://localhost', port: '2113')
|
|
56
|
-
end
|
|
57
|
-
```
|
|
47
|
+
4. Visit the admin panel http://localhost:2113 and enable Projections for Event-Types
|
|
58
48
|
|
|
59
49
|
### Create Dummy event and dummy Handler
|
|
60
50
|
|
|
61
|
-
To test out the behavior, you'll need a sample event and handler to work with:
|
|
51
|
+
To test out the behavior, you'll need a sample event and event handler to work with:
|
|
62
52
|
|
|
63
53
|
```ruby
|
|
64
54
|
|
|
@@ -83,7 +73,7 @@ with an event being passed as an argument.
|
|
|
83
73
|
|
|
84
74
|
```ruby
|
|
85
75
|
class DummyHandler
|
|
86
|
-
def
|
|
76
|
+
def call(event)
|
|
87
77
|
puts "Handled #{event.class.name}"
|
|
88
78
|
end
|
|
89
79
|
end
|
|
@@ -110,7 +100,7 @@ events = client.read('newstream')
|
|
|
110
100
|
**Changing reading direction**
|
|
111
101
|
|
|
112
102
|
```ruby
|
|
113
|
-
events = client.read('newstream', direction: '
|
|
103
|
+
events = client.read('newstream', direction: 'backwards') #default 'forwards'
|
|
114
104
|
```
|
|
115
105
|
|
|
116
106
|
**Reading all events from a stream**
|
|
@@ -122,12 +112,12 @@ events = client.read('newstream', all: true) #default 'false'
|
|
|
122
112
|
### Subscribing to events
|
|
123
113
|
|
|
124
114
|
```ruby
|
|
125
|
-
client.subscribe(DummyHandler, to: [SomethingHappened])
|
|
115
|
+
client.subscribe(DummyHandler.new, to: [SomethingHappened])
|
|
126
116
|
|
|
127
|
-
#
|
|
117
|
+
# Now In another terminal seesion try to publish several events
|
|
128
118
|
10.times { client.publish(stream: 'newstream', events: [event]) }
|
|
129
119
|
|
|
130
|
-
You can also publish multiple events at once
|
|
120
|
+
# You can also publish multiple events at once
|
|
131
121
|
|
|
132
122
|
events = (1..10).map { event }
|
|
133
123
|
client.publish(stream: 'newstream', events: events)
|
|
@@ -141,22 +131,24 @@ client.publish(stream: 'newstream', events: events)
|
|
|
141
131
|
client.stop_polling
|
|
142
132
|
```
|
|
143
133
|
|
|
144
|
-
###
|
|
134
|
+
### Configure EventStoreClient
|
|
145
135
|
|
|
146
|
-
|
|
147
|
-
|
|
136
|
+
Before you start, add this to the `initializer` or to the top of your script:
|
|
137
|
+
|
|
138
|
+
For testing, you can use the InMemory adapter. To do it you should change the configuration.
|
|
148
139
|
|
|
149
140
|
```ruby
|
|
150
|
-
|
|
151
|
-
|
|
141
|
+
EventStoreClient.configure do |config|
|
|
142
|
+
config.adapter = EventStoreClient::InMemory.new(host: 'http://localhost', port: '2113')
|
|
143
|
+
end
|
|
152
144
|
```
|
|
153
145
|
|
|
154
|
-
When you read from stream where links are placed. By default Event Store Client always resolve links for you returning the event that points to the link. You can use the ES-ResolveLinkTos: false HTTP header during readin stream to tell Event Store Client to return you the actual link and to not resolve it.
|
|
155
|
-
More info: [ES-ResolveLinkTos](https://eventstore.org/docs/http-api/optional-http-headers/resolve-linkto/index.html?tabs=tabid-1%2Ctabid-3).
|
|
156
|
-
|
|
157
146
|
## Event Mappers
|
|
158
147
|
|
|
159
|
-
|
|
148
|
+
At the moment we offer two types of mappers:
|
|
149
|
+
|
|
150
|
+
- default
|
|
151
|
+
- encrypted
|
|
160
152
|
|
|
161
153
|
### Default Mapper
|
|
162
154
|
|
data/lib/event_store_client.rb
CHANGED
|
@@ -12,8 +12,6 @@ require 'event_store_client/mapper'
|
|
|
12
12
|
|
|
13
13
|
require 'event_store_client/configuration'
|
|
14
14
|
|
|
15
|
-
require 'event_store_client/store_adapter'
|
|
16
|
-
|
|
17
15
|
require 'event_store_client/subscription'
|
|
18
16
|
require 'event_store_client/subscriptions'
|
|
19
17
|
require 'event_store_client/broker'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'event_store_client/value_objects/read_direction.rb'
|
|
4
|
+
|
|
5
|
+
require 'event_store_client/adapters/grpc/commands/streams/append'
|
|
6
|
+
require 'event_store_client/adapters/grpc/commands/streams/delete'
|
|
7
|
+
require 'event_store_client/adapters/grpc/commands/streams/link_to'
|
|
8
|
+
require 'event_store_client/adapters/grpc/commands/streams/read'
|
|
9
|
+
require 'event_store_client/adapters/grpc/commands/streams/read_all'
|
|
10
|
+
require 'event_store_client/adapters/grpc/commands/streams/tombstone'
|
|
11
|
+
|
|
12
|
+
require 'event_store_client/adapters/grpc/commands/persistent_subscriptions/create'
|
|
13
|
+
require 'event_store_client/adapters/grpc/commands/persistent_subscriptions/update'
|
|
14
|
+
require 'event_store_client/adapters/grpc/commands/persistent_subscriptions/delete'
|
|
15
|
+
require 'event_store_client/adapters/grpc/commands/persistent_subscriptions/read'
|
|
16
|
+
|
|
17
|
+
require 'event_store_client/adapters/grpc/commands/projections/create'
|
|
18
|
+
require 'event_store_client/adapters/grpc/commands/projections/update'
|
|
19
|
+
require 'event_store_client/adapters/grpc/commands/projections/delete'
|
|
20
|
+
|
|
21
|
+
require 'event_store_client/adapters/grpc/client'
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
package event_store.cluster;
|
|
3
|
+
option java_package = "com.eventstore.dbclient.proto.cluster";
|
|
4
|
+
|
|
5
|
+
import "shared.proto";
|
|
6
|
+
|
|
7
|
+
service Gossip {
|
|
8
|
+
rpc Update (GossipRequest) returns (ClusterInfo);
|
|
9
|
+
rpc Read (event_store.client.shared.Empty) returns (ClusterInfo);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
service Elections {
|
|
13
|
+
rpc ViewChange (ViewChangeRequest) returns (event_store.client.shared.Empty);
|
|
14
|
+
rpc ViewChangeProof (ViewChangeProofRequest) returns (event_store.client.shared.Empty);
|
|
15
|
+
rpc Prepare (PrepareRequest) returns (event_store.client.shared.Empty);
|
|
16
|
+
rpc PrepareOk (PrepareOkRequest) returns (event_store.client.shared.Empty);
|
|
17
|
+
rpc Proposal (ProposalRequest) returns (event_store.client.shared.Empty);
|
|
18
|
+
rpc Accept (AcceptRequest) returns (event_store.client.shared.Empty);
|
|
19
|
+
|
|
20
|
+
rpc LeaderIsResigning (LeaderIsResigningRequest) returns (event_store.client.shared.Empty);
|
|
21
|
+
rpc LeaderIsResigningOk (LeaderIsResigningOkRequest) returns (event_store.client.shared.Empty);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
message GossipRequest {
|
|
25
|
+
ClusterInfo info = 1;
|
|
26
|
+
EndPoint server = 2;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
message ViewChangeRequest {
|
|
30
|
+
event_store.client.shared.UUID server_id = 1;
|
|
31
|
+
EndPoint server_http = 2;
|
|
32
|
+
int32 attempted_view = 3;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
message ViewChangeProofRequest {
|
|
36
|
+
event_store.client.shared.UUID server_id = 1;
|
|
37
|
+
EndPoint server_http = 2;
|
|
38
|
+
int32 installed_view = 3;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
message PrepareRequest {
|
|
42
|
+
event_store.client.shared.UUID server_id = 1;
|
|
43
|
+
EndPoint server_http = 2;
|
|
44
|
+
int32 view = 3;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
message PrepareOkRequest {
|
|
48
|
+
int32 view = 1;
|
|
49
|
+
event_store.client.shared.UUID server_id = 2;
|
|
50
|
+
EndPoint server_http = 3;
|
|
51
|
+
int32 epoch_number = 4;
|
|
52
|
+
int64 epoch_position = 5;
|
|
53
|
+
event_store.client.shared.UUID epoch_id = 6;
|
|
54
|
+
event_store.client.shared.UUID epoch_leader_instance_id = 7;
|
|
55
|
+
int64 last_commit_position = 8;
|
|
56
|
+
int64 writer_checkpoint = 9;
|
|
57
|
+
int64 chaser_checkpoint = 10;
|
|
58
|
+
int32 node_priority = 11;
|
|
59
|
+
ClusterInfo cluster_info = 12;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
message ProposalRequest {
|
|
63
|
+
event_store.client.shared.UUID server_id = 1;
|
|
64
|
+
EndPoint server_http = 2;
|
|
65
|
+
event_store.client.shared.UUID leader_id = 3;
|
|
66
|
+
EndPoint leader_http = 4;
|
|
67
|
+
int32 view = 5;
|
|
68
|
+
int32 epoch_number = 6;
|
|
69
|
+
int64 epoch_position = 7;
|
|
70
|
+
event_store.client.shared.UUID epoch_id = 8;
|
|
71
|
+
event_store.client.shared.UUID epoch_leader_instance_id = 9;
|
|
72
|
+
int64 last_commit_position = 10;
|
|
73
|
+
int64 writer_checkpoint = 11;
|
|
74
|
+
int64 chaser_checkpoint = 12;
|
|
75
|
+
int32 node_priority = 13;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
message AcceptRequest {
|
|
79
|
+
event_store.client.shared.UUID server_id = 1;
|
|
80
|
+
EndPoint server_http = 2;
|
|
81
|
+
event_store.client.shared.UUID leader_id = 3;
|
|
82
|
+
EndPoint leader_http = 4;
|
|
83
|
+
int32 view = 5;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
message LeaderIsResigningRequest {
|
|
87
|
+
event_store.client.shared.UUID leader_id = 1;
|
|
88
|
+
EndPoint leader_http = 2;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
message LeaderIsResigningOkRequest {
|
|
92
|
+
event_store.client.shared.UUID leader_id = 1;
|
|
93
|
+
EndPoint leader_http = 2;
|
|
94
|
+
event_store.client.shared.UUID server_id = 3;
|
|
95
|
+
EndPoint server_http = 4;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
message ClusterInfo {
|
|
99
|
+
repeated MemberInfo members = 1;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
message EndPoint {
|
|
103
|
+
string address = 1;
|
|
104
|
+
uint32 port = 2;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
message MemberInfo {
|
|
108
|
+
enum VNodeState {
|
|
109
|
+
Initializing = 0;
|
|
110
|
+
DiscoverLeader = 1;
|
|
111
|
+
Unknown = 2;
|
|
112
|
+
PreReplica = 3;
|
|
113
|
+
CatchingUp = 4;
|
|
114
|
+
Clone = 5;
|
|
115
|
+
Follower = 6;
|
|
116
|
+
PreLeader = 7;
|
|
117
|
+
Leader = 8;
|
|
118
|
+
Manager = 9;
|
|
119
|
+
ShuttingDown = 10;
|
|
120
|
+
Shutdown = 11;
|
|
121
|
+
ReadOnlyLeaderless = 12;
|
|
122
|
+
PreReadOnlyReplica = 13;
|
|
123
|
+
ReadOnlyReplica = 14;
|
|
124
|
+
ResigningLeader = 15;
|
|
125
|
+
}
|
|
126
|
+
event_store.client.shared.UUID instance_id = 1;
|
|
127
|
+
int64 time_stamp = 2;
|
|
128
|
+
VNodeState state = 3;
|
|
129
|
+
bool is_alive = 4;
|
|
130
|
+
EndPoint http_end_point = 5;
|
|
131
|
+
EndPoint internal_tcp = 6;
|
|
132
|
+
EndPoint external_tcp = 7;
|
|
133
|
+
bool internal_tcp_uses_tls = 8;
|
|
134
|
+
bool external_tcp_uses_tls = 9;
|
|
135
|
+
|
|
136
|
+
int64 last_commit_position = 10;
|
|
137
|
+
int64 writer_checkpoint = 11;
|
|
138
|
+
int64 chaser_checkpoint = 12;
|
|
139
|
+
int64 epoch_position = 13;
|
|
140
|
+
int32 epoch_number = 14;
|
|
141
|
+
event_store.client.shared.UUID epoch_id = 15;
|
|
142
|
+
|
|
143
|
+
int32 node_priority = 16;
|
|
144
|
+
bool is_read_only_replica = 17;
|
|
145
|
+
string advertise_host_to_client_as = 18;
|
|
146
|
+
uint32 advertise_http_port_to_client_as = 19;
|
|
147
|
+
uint32 advertise_tcp_port_to_client_as = 20;
|
|
148
|
+
}
|
|
149
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
package event_store.client.gossip;
|
|
3
|
+
option java_package = "com.eventstore.dbclient.proto.gossip";
|
|
4
|
+
|
|
5
|
+
import "shared.proto";
|
|
6
|
+
|
|
7
|
+
service Gossip {
|
|
8
|
+
rpc Read (event_store.client.shared.Empty) returns (ClusterInfo);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
message ClusterInfo {
|
|
12
|
+
repeated MemberInfo members = 1;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
message EndPoint {
|
|
16
|
+
string address = 1;
|
|
17
|
+
uint32 port = 2;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
message MemberInfo {
|
|
21
|
+
enum VNodeState {
|
|
22
|
+
Initializing = 0;
|
|
23
|
+
DiscoverLeader = 1;
|
|
24
|
+
Unknown = 2;
|
|
25
|
+
PreReplica = 3;
|
|
26
|
+
CatchingUp = 4;
|
|
27
|
+
Clone = 5;
|
|
28
|
+
Follower = 6;
|
|
29
|
+
PreLeader = 7;
|
|
30
|
+
Leader = 8;
|
|
31
|
+
Manager = 9;
|
|
32
|
+
ShuttingDown = 10;
|
|
33
|
+
Shutdown = 11;
|
|
34
|
+
ReadOnlyLeaderless = 12;
|
|
35
|
+
PreReadOnlyReplica = 13;
|
|
36
|
+
ReadOnlyReplica = 14;
|
|
37
|
+
ResigningLeader = 15;
|
|
38
|
+
}
|
|
39
|
+
event_store.client.shared.UUID instance_id = 1;
|
|
40
|
+
int64 time_stamp = 2;
|
|
41
|
+
VNodeState state = 3;
|
|
42
|
+
bool is_alive = 4;
|
|
43
|
+
EndPoint http_end_point = 5;
|
|
44
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
package event_store.client.operations;
|
|
3
|
+
option java_package = "com.eventstore.dbclient.proto.operations";
|
|
4
|
+
|
|
5
|
+
import "shared.proto";
|
|
6
|
+
|
|
7
|
+
service Operations {
|
|
8
|
+
rpc StartScavenge (StartScavengeReq) returns (ScavengeResp);
|
|
9
|
+
rpc StopScavenge (StopScavengeReq) returns (ScavengeResp);
|
|
10
|
+
rpc Shutdown (event_store.client.shared.Empty) returns (event_store.client.shared.Empty);
|
|
11
|
+
rpc MergeIndexes (event_store.client.shared.Empty) returns (event_store.client.shared.Empty);
|
|
12
|
+
rpc ResignNode (event_store.client.shared.Empty) returns (event_store.client.shared.Empty);
|
|
13
|
+
rpc SetNodePriority (SetNodePriorityReq) returns (event_store.client.shared.Empty);
|
|
14
|
+
rpc RestartPersistentSubscriptions (event_store.client.shared.Empty) returns (event_store.client.shared.Empty);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
message StartScavengeReq {
|
|
18
|
+
Options options = 1;
|
|
19
|
+
message Options {
|
|
20
|
+
int32 thread_count = 1;
|
|
21
|
+
int32 start_from_chunk = 2;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
message StopScavengeReq {
|
|
26
|
+
Options options = 1;
|
|
27
|
+
message Options {
|
|
28
|
+
string scavenge_id = 1;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
message ScavengeResp {
|
|
33
|
+
string scavenge_id = 1;
|
|
34
|
+
ScavengeResult scavenge_result = 2;
|
|
35
|
+
|
|
36
|
+
enum ScavengeResult {
|
|
37
|
+
Started = 0;
|
|
38
|
+
InProgress = 1;
|
|
39
|
+
Stopped = 2;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
message SetNodePriorityReq {
|
|
44
|
+
int32 priority = 1;
|
|
45
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
package event_store.client.persistent_subscriptions;
|
|
3
|
+
option java_package = "com.eventstore.dbclient.proto.persistentsubscriptions";
|
|
4
|
+
|
|
5
|
+
import "shared.proto";
|
|
6
|
+
|
|
7
|
+
service PersistentSubscriptions {
|
|
8
|
+
rpc Create (CreateReq) returns (CreateResp);
|
|
9
|
+
rpc Update (UpdateReq) returns (UpdateResp);
|
|
10
|
+
rpc Delete (DeleteReq) returns (DeleteResp);
|
|
11
|
+
rpc Read (stream ReadReq) returns (stream ReadResp);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
message ReadReq {
|
|
15
|
+
oneof content {
|
|
16
|
+
Options options = 1;
|
|
17
|
+
Ack ack = 2;
|
|
18
|
+
Nack nack = 3;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
message Options {
|
|
22
|
+
event_store.client.shared.StreamIdentifier stream_identifier = 1;
|
|
23
|
+
string group_name = 2;
|
|
24
|
+
int32 buffer_size = 3;
|
|
25
|
+
UUIDOption uuid_option = 4;
|
|
26
|
+
|
|
27
|
+
message UUIDOption {
|
|
28
|
+
oneof content {
|
|
29
|
+
event_store.client.shared.Empty structured = 1;
|
|
30
|
+
event_store.client.shared.Empty string = 2;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
message Ack {
|
|
36
|
+
bytes id = 1;
|
|
37
|
+
repeated event_store.client.shared.UUID ids = 2;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
message Nack {
|
|
41
|
+
bytes id = 1;
|
|
42
|
+
repeated event_store.client.shared.UUID ids = 2;
|
|
43
|
+
Action action = 3;
|
|
44
|
+
string reason = 4;
|
|
45
|
+
|
|
46
|
+
enum Action {
|
|
47
|
+
Unknown = 0;
|
|
48
|
+
Park = 1;
|
|
49
|
+
Retry = 2;
|
|
50
|
+
Skip = 3;
|
|
51
|
+
Stop = 4;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
message ReadResp {
|
|
57
|
+
oneof content {
|
|
58
|
+
ReadEvent event = 1;
|
|
59
|
+
SubscriptionConfirmation subscription_confirmation = 2;
|
|
60
|
+
}
|
|
61
|
+
message ReadEvent {
|
|
62
|
+
RecordedEvent event = 1;
|
|
63
|
+
RecordedEvent link = 2;
|
|
64
|
+
oneof position {
|
|
65
|
+
uint64 commit_position = 3;
|
|
66
|
+
event_store.client.shared.Empty no_position = 4;
|
|
67
|
+
}
|
|
68
|
+
oneof count {
|
|
69
|
+
int32 retry_count = 5;
|
|
70
|
+
event_store.client.shared.Empty no_retry_count = 6;
|
|
71
|
+
}
|
|
72
|
+
message RecordedEvent {
|
|
73
|
+
event_store.client.shared.UUID id = 1;
|
|
74
|
+
event_store.client.shared.StreamIdentifier stream_identifier = 2;
|
|
75
|
+
uint64 stream_revision = 3;
|
|
76
|
+
uint64 prepare_position = 4;
|
|
77
|
+
uint64 commit_position = 5;
|
|
78
|
+
map<string, string> metadata = 6;
|
|
79
|
+
bytes custom_metadata = 7;
|
|
80
|
+
bytes data = 8;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
message SubscriptionConfirmation {
|
|
84
|
+
string subscription_id = 1;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
message CreateReq {
|
|
89
|
+
Options options = 1;
|
|
90
|
+
|
|
91
|
+
message Options {
|
|
92
|
+
event_store.client.shared.StreamIdentifier stream_identifier = 1;
|
|
93
|
+
string group_name = 2;
|
|
94
|
+
Settings settings = 3;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
message Settings {
|
|
98
|
+
bool resolve_links = 1;
|
|
99
|
+
uint64 revision = 2;
|
|
100
|
+
bool extra_statistics = 3;
|
|
101
|
+
int32 max_retry_count = 5;
|
|
102
|
+
int32 min_checkpoint_count = 7;
|
|
103
|
+
int32 max_checkpoint_count = 8;
|
|
104
|
+
int32 max_subscriber_count = 9;
|
|
105
|
+
int32 live_buffer_size = 10;
|
|
106
|
+
int32 read_batch_size = 11;
|
|
107
|
+
int32 history_buffer_size = 12;
|
|
108
|
+
ConsumerStrategy named_consumer_strategy = 13;
|
|
109
|
+
oneof message_timeout {
|
|
110
|
+
int64 message_timeout_ticks = 4;
|
|
111
|
+
int32 message_timeout_ms = 14;
|
|
112
|
+
}
|
|
113
|
+
oneof checkpoint_after {
|
|
114
|
+
int64 checkpoint_after_ticks = 6;
|
|
115
|
+
int32 checkpoint_after_ms = 15;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
enum ConsumerStrategy {
|
|
120
|
+
DispatchToSingle = 0;
|
|
121
|
+
RoundRobin = 1;
|
|
122
|
+
Pinned = 2;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
message CreateResp {
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
message UpdateReq {
|
|
130
|
+
Options options = 1;
|
|
131
|
+
|
|
132
|
+
message Options {
|
|
133
|
+
event_store.client.shared.StreamIdentifier stream_identifier = 1;
|
|
134
|
+
string group_name = 2;
|
|
135
|
+
Settings settings = 3;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
message Settings {
|
|
139
|
+
bool resolve_links = 1;
|
|
140
|
+
uint64 revision = 2;
|
|
141
|
+
bool extra_statistics = 3;
|
|
142
|
+
int32 max_retry_count = 5;
|
|
143
|
+
int32 min_checkpoint_count = 7;
|
|
144
|
+
int32 max_checkpoint_count = 8;
|
|
145
|
+
int32 max_subscriber_count = 9;
|
|
146
|
+
int32 live_buffer_size = 10;
|
|
147
|
+
int32 read_batch_size = 11;
|
|
148
|
+
int32 history_buffer_size = 12;
|
|
149
|
+
ConsumerStrategy named_consumer_strategy = 13;
|
|
150
|
+
oneof message_timeout {
|
|
151
|
+
int64 message_timeout_ticks = 4;
|
|
152
|
+
int32 message_timeout_ms = 14;
|
|
153
|
+
}
|
|
154
|
+
oneof checkpoint_after {
|
|
155
|
+
int64 checkpoint_after_ticks = 6;
|
|
156
|
+
int32 checkpoint_after_ms = 15;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
enum ConsumerStrategy {
|
|
161
|
+
DispatchToSingle = 0;
|
|
162
|
+
RoundRobin = 1;
|
|
163
|
+
Pinned = 2;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
message UpdateResp {
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
message DeleteReq {
|
|
171
|
+
Options options = 1;
|
|
172
|
+
|
|
173
|
+
message Options {
|
|
174
|
+
event_store.client.shared.StreamIdentifier stream_identifier = 1;
|
|
175
|
+
string group_name = 2;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
message DeleteResp {
|
|
180
|
+
}
|