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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -37
  3. data/lib/event_store_client.rb +0 -2
  4. data/lib/event_store_client/adapters/grpc.rb +21 -0
  5. data/lib/event_store_client/adapters/grpc/Protos/cluster.proto +149 -0
  6. data/lib/event_store_client/adapters/grpc/Protos/gossip.proto +44 -0
  7. data/lib/event_store_client/adapters/grpc/Protos/operations.proto +45 -0
  8. data/lib/event_store_client/adapters/grpc/Protos/persistent.proto +180 -0
  9. data/lib/event_store_client/adapters/grpc/Protos/projections.proto +174 -0
  10. data/lib/event_store_client/adapters/grpc/Protos/shared.proto +22 -0
  11. data/lib/event_store_client/adapters/grpc/Protos/streams.proto +242 -0
  12. data/lib/event_store_client/adapters/grpc/Protos/users.proto +119 -0
  13. data/lib/event_store_client/adapters/grpc/client.rb +119 -0
  14. data/lib/event_store_client/adapters/grpc/command_registrar.rb +32 -0
  15. data/lib/event_store_client/adapters/grpc/commands/command.rb +43 -0
  16. data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/create.rb +46 -0
  17. data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/delete.rb +34 -0
  18. data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/read.rb +66 -0
  19. data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/settings_schema.rb +38 -0
  20. data/lib/event_store_client/adapters/grpc/commands/persistent_subscriptions/update.rb +48 -0
  21. data/lib/event_store_client/adapters/grpc/commands/projections/create.rb +45 -0
  22. data/lib/event_store_client/adapters/grpc/commands/projections/delete.rb +34 -0
  23. data/lib/event_store_client/adapters/grpc/commands/projections/update.rb +42 -0
  24. data/lib/event_store_client/adapters/grpc/commands/streams/append.rb +57 -0
  25. data/lib/event_store_client/adapters/grpc/commands/streams/delete.rb +35 -0
  26. data/lib/event_store_client/adapters/grpc/commands/streams/link_to.rb +53 -0
  27. data/lib/event_store_client/adapters/grpc/commands/streams/read.rb +80 -0
  28. data/lib/event_store_client/adapters/grpc/commands/streams/read_all.rb +43 -0
  29. data/lib/event_store_client/adapters/grpc/commands/streams/tombstone.rb +35 -0
  30. data/lib/event_store_client/adapters/grpc/connection.rb +50 -0
  31. data/lib/event_store_client/adapters/grpc/generated/cluster_pb.rb +140 -0
  32. data/lib/event_store_client/adapters/grpc/generated/cluster_services_pb.rb +46 -0
  33. data/lib/event_store_client/adapters/grpc/generated/gossip_pb.rb +53 -0
  34. data/lib/event_store_client/adapters/grpc/generated/gossip_services_pb.rb +26 -0
  35. data/lib/event_store_client/adapters/grpc/generated/operations_pb.rb +49 -0
  36. data/lib/event_store_client/adapters/grpc/generated/operations_services_pb.rb +31 -0
  37. data/lib/event_store_client/adapters/grpc/generated/persistent_pb.rb +213 -0
  38. data/lib/event_store_client/adapters/grpc/generated/persistent_services_pb.rb +29 -0
  39. data/lib/event_store_client/adapters/grpc/generated/projections_pb.rb +193 -0
  40. data/lib/event_store_client/adapters/grpc/generated/projections_services_pb.rb +34 -0
  41. data/lib/event_store_client/adapters/grpc/generated/shared_pb.rb +35 -0
  42. data/lib/event_store_client/adapters/grpc/generated/streams_pb.rb +283 -0
  43. data/lib/event_store_client/adapters/grpc/generated/streams_services_pb.rb +29 -0
  44. data/lib/event_store_client/adapters/grpc/generated/users_pb.rb +126 -0
  45. data/lib/event_store_client/adapters/grpc/generated/users_services_pb.rb +33 -0
  46. data/lib/event_store_client/adapters/http.rb +16 -0
  47. data/lib/event_store_client/adapters/http/README.md +16 -0
  48. data/lib/event_store_client/adapters/http/client.rb +160 -0
  49. data/lib/event_store_client/adapters/http/commands/command.rb +27 -0
  50. data/lib/event_store_client/adapters/http/commands/persistent_subscriptions/ack.rb +15 -0
  51. data/lib/event_store_client/adapters/http/commands/persistent_subscriptions/create.rb +31 -0
  52. data/lib/event_store_client/adapters/http/commands/persistent_subscriptions/read.rb +57 -0
  53. data/lib/event_store_client/adapters/http/commands/projections/create.rb +30 -0
  54. data/lib/event_store_client/adapters/http/commands/streams/append.rb +49 -0
  55. data/lib/event_store_client/adapters/http/commands/streams/delete.rb +16 -0
  56. data/lib/event_store_client/adapters/http/commands/streams/link_to.rb +49 -0
  57. data/lib/event_store_client/adapters/http/commands/streams/read.rb +53 -0
  58. data/lib/event_store_client/adapters/http/commands/streams/tombstone.rb +17 -0
  59. data/lib/event_store_client/adapters/http/connection.rb +46 -0
  60. data/lib/event_store_client/adapters/http/request_method.rb +28 -0
  61. data/lib/event_store_client/adapters/in_memory.rb +139 -0
  62. data/lib/event_store_client/broker.rb +16 -5
  63. data/lib/event_store_client/client.rb +17 -69
  64. data/lib/event_store_client/configuration.rb +28 -14
  65. data/lib/event_store_client/data_decryptor.rb +13 -8
  66. data/lib/event_store_client/data_encryptor.rb +7 -6
  67. data/lib/event_store_client/deserialized_event.rb +4 -1
  68. data/lib/event_store_client/event.rb +2 -2
  69. data/lib/event_store_client/mapper/default.rb +0 -1
  70. data/lib/event_store_client/serializer/json.rb +2 -0
  71. data/lib/event_store_client/subscriptions.rb +4 -13
  72. data/lib/event_store_client/types.rb +3 -1
  73. data/lib/event_store_client/value_objects/read_direction.rb +43 -0
  74. data/lib/event_store_client/version.rb +1 -1
  75. metadata +97 -15
  76. data/lib/event_store_client/store_adapter.rb +0 -10
  77. data/lib/event_store_client/store_adapter/api/client.rb +0 -224
  78. data/lib/event_store_client/store_adapter/api/connection.rb +0 -43
  79. data/lib/event_store_client/store_adapter/api/request_method.rb +0 -30
  80. data/lib/event_store_client/store_adapter/in_memory.rb +0 -160
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'event_store_client/adapters/grpc/generated/projections_pb.rb'
5
+ require 'event_store_client/adapters/grpc/generated/projections_services_pb.rb'
6
+
7
+ require 'event_store_client/adapters/grpc/commands/command'
8
+
9
+ module EventStoreClient
10
+ module GRPC
11
+ module Commands
12
+ module Projections
13
+ class Delete < Command
14
+ use_request EventStore::Client::Projections::DeleteReq
15
+ use_service EventStore::Client::Projections::Projections::Stub
16
+
17
+ def call(name, options: {})
18
+ opts = {
19
+ name: name,
20
+ delete_emitted_streams: true,
21
+ delete_state_stream: true,
22
+ delete_checkpoint_stream: true
23
+ }.merge(options)
24
+
25
+ service.delete(request.new(options: opts), metadata: metadata)
26
+ Success()
27
+ rescue ::GRPC::Unknown => e
28
+ Failure(:not_found) if e.message.include?('OperationFailed')
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'event_store_client/adapters/grpc/generated/projections_pb.rb'
5
+ require 'event_store_client/adapters/grpc/generated/projections_services_pb.rb'
6
+
7
+ require 'event_store_client/adapters/grpc/commands/command'
8
+
9
+ module EventStoreClient
10
+ module GRPC
11
+ module Commands
12
+ module Projections
13
+ class Update < Command
14
+ use_request EventStore::Client::Projections::UpdateReq
15
+ use_service EventStore::Client::Projections::Projections::Stub
16
+
17
+ def call(name, streams)
18
+ data = <<~STRING
19
+ fromStreams(#{streams})
20
+ .when({
21
+ $any: function(s,e) {
22
+ linkTo("#{name}", e)
23
+ }
24
+ })
25
+ STRING
26
+
27
+ options =
28
+ {
29
+ query: data,
30
+ name: name,
31
+ emit_enabled: true
32
+ }
33
+ service.update(request.new(options: options), metadata: metadata)
34
+ Success()
35
+ rescue ::GRPC::AlreadyExists
36
+ Failure(:conflict)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'event_store_client/adapters/grpc/generated/streams_pb.rb'
5
+ require 'event_store_client/adapters/grpc/generated/streams_services_pb.rb'
6
+
7
+ require 'event_store_client/adapters/grpc/commands/command'
8
+
9
+ module EventStoreClient
10
+ module GRPC
11
+ module Commands
12
+ module Streams
13
+ class Append < Command
14
+ use_request EventStore::Client::Streams::AppendReq
15
+ use_service EventStore::Client::Streams::Streams::Stub
16
+
17
+ # @api private
18
+ # TODO: Add support to verify the expected version
19
+ def call(stream, events, options: {}) # rubocop:disable Lint/UnusedMethodArgument,Metrics/LineLength
20
+ serialized_events = events.map { |event| config.mapper.serialize(event) }
21
+
22
+ serialized_events.each do |event|
23
+ event_metadata = JSON.parse(event.metadata)
24
+ payload = [
25
+ request.new(
26
+ options: {
27
+ stream_identifier: {
28
+ streamName: stream
29
+ },
30
+ any: {}
31
+ }
32
+ ),
33
+ request.new(
34
+ proposed_message: {
35
+ id: {
36
+ string: SecureRandom.uuid
37
+ },
38
+ data: event.data,
39
+ custom_metadata: JSON.generate(
40
+ "type": event.type,
41
+ "content-type": 'application/vnd.eventstore.events+json',
42
+ "created_at": Time.now,
43
+ 'encryption': event_metadata['encryption']
44
+ ),
45
+ metadata: event_metadata.select { |k| ['type', 'content-type', 'created_at'].include?(k) }
46
+ }
47
+ )
48
+ ]
49
+ service.append(payload, metadata: metadata)
50
+ end
51
+ Success()
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'event_store_client/adapters/grpc/generated/projections_pb.rb'
5
+ require 'event_store_client/adapters/grpc/generated/projections_services_pb.rb'
6
+
7
+ require 'event_store_client/adapters/grpc/commands/command'
8
+
9
+ module EventStoreClient
10
+ module GRPC
11
+ module Commands
12
+ module Streams
13
+ class Delete < Command
14
+ use_request EventStore::Client::Streams::DeleteReq
15
+ use_service EventStore::Client::Streams::Streams::Stub
16
+
17
+ def call(name, options: {}) # rubocop:disable Lint/UnusedMethodArgument
18
+ opts =
19
+ {
20
+ stream_identifier: {
21
+ streamName: name
22
+ },
23
+ any: {}
24
+ }
25
+
26
+ service.delete(request.new(options: opts), metadata: metadata)
27
+ Success()
28
+ rescue ::GRPC::FailedPrecondition
29
+ Failure(:not_found)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'event_store_client/adapters/grpc/generated/streams_pb.rb'
5
+ require 'event_store_client/adapters/grpc/generated/streams_services_pb.rb'
6
+
7
+ require 'event_store_client/adapters/grpc/commands/command'
8
+
9
+ module EventStoreClient
10
+ module GRPC
11
+ module Commands
12
+ module Streams
13
+ class LinkTo < Command
14
+ include Configuration
15
+
16
+ use_request EventStore::Client::Streams::AppendReq
17
+ use_service EventStore::Client::Streams::Streams::Stub
18
+
19
+ def call(stream_name, events, options: {})
20
+ events.each do |event|
21
+ payload = [
22
+ request.new(
23
+ options: {
24
+ stream_identifier: {
25
+ streamName: stream_name
26
+ },
27
+ any: {}
28
+ }
29
+ ),
30
+ request.new(
31
+ proposed_message: {
32
+ id: {
33
+ string: event.id
34
+ },
35
+ data: event.title,
36
+ custom_metadata: JSON.generate(
37
+ "type": '$>',
38
+ "content-type": 'application/vnd.eventstore.events+json',
39
+ "created_at": Time.now
40
+ ),
41
+ metadata: event.metadata.tap { |h| h['type'] = '$>' }
42
+ }
43
+ )
44
+ ]
45
+ service.append(payload, metadata: metadata)
46
+ end
47
+ Success()
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'event_store_client/adapters/grpc/generated/streams_pb.rb'
5
+ require 'event_store_client/adapters/grpc/generated/streams_services_pb.rb'
6
+
7
+ require 'event_store_client/configuration'
8
+ require 'event_store_client/adapters/grpc/commands/command'
9
+
10
+ module EventStoreClient
11
+ module GRPC
12
+ module Commands
13
+ module Streams
14
+ class Read < Command
15
+ include Configuration
16
+
17
+ use_request EventStore::Client::Streams::ReadReq
18
+ use_service EventStore::Client::Streams::Streams::Stub
19
+
20
+ StreamNotFound = Class.new(StandardError)
21
+
22
+ def call(name, options: {})
23
+ direction =
24
+ EventStoreClient::ReadDirection.new(options[:direction] || 'forwards').to_sym
25
+ opts = {
26
+ stream: {
27
+ stream_identifier: {
28
+ streamName: name
29
+ }
30
+ },
31
+ read_direction: direction,
32
+ resolve_links: options[:resolve_links] || true,
33
+ count: options[:count] || config.per_page,
34
+ uuid_option: {
35
+ string: {}
36
+ },
37
+ no_filter: {}
38
+ }
39
+ options[:start] ||= 0
40
+ if options[:start].zero?
41
+ opts[:stream][:start] = {}
42
+ else
43
+ opts[:stream][:revision] = options[:start]
44
+ end
45
+
46
+ events = service.read(request.new(options: opts), metadata: metadata).map do |res|
47
+ raise StreamNotFound if res.stream_not_found
48
+
49
+ deserialize_event(res.event.event)
50
+ end
51
+ Success(events)
52
+ rescue StreamNotFound
53
+ Failure(:not_found)
54
+ end
55
+
56
+ private
57
+
58
+ def deserialize_event(entry)
59
+ data = (entry.data.nil? || entry.data.empty?) ? '{}' : entry.data
60
+
61
+ metadata =
62
+ JSON.parse(entry.custom_metadata || '{}').merge(
63
+ entry.metadata.to_h || {}
64
+ ).to_json
65
+
66
+ event = EventStoreClient::Event.new(
67
+ id: entry.id.string,
68
+ title: "#{entry.stream_revision}@#{entry.stream_identifier.streamName}",
69
+ type: entry.metadata['type'],
70
+ data: data,
71
+ metadata: metadata
72
+ )
73
+
74
+ config.mapper.deserialize(event)
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'event_store_client/adapters/grpc/generated/projections_pb.rb'
5
+ require 'event_store_client/adapters/grpc/generated/projections_services_pb.rb'
6
+
7
+ require 'event_store_client/configuration'
8
+ require 'event_store_client/adapters/grpc/commands/command'
9
+ require 'event_store_client/adapters/grpc/commands/streams/read'
10
+
11
+ module EventStoreClient
12
+ module GRPC
13
+ module Commands
14
+ module Streams
15
+ class ReadAll < Command
16
+ include Configuration
17
+
18
+ use_request EventStore::Client::Streams::ReadReq
19
+ use_service EventStore::Client::Streams::Streams::Stub
20
+
21
+ def call(stream_name, options: {})
22
+ start ||= options[:start] || 0
23
+ count ||= options[:count] || 20
24
+ events = []
25
+
26
+ loop do
27
+ res = Read.new.call(
28
+ stream_name, options: options.merge(start: start, count: count)
29
+ )
30
+ break if res.failure?
31
+ break if (entries = res.value!).empty?
32
+
33
+ events += entries
34
+ start += count
35
+ end
36
+
37
+ Success(events)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'event_store_client/adapters/grpc/generated/projections_pb.rb'
5
+ require 'event_store_client/adapters/grpc/generated/projections_services_pb.rb'
6
+
7
+ require 'event_store_client/adapters/grpc/commands/command'
8
+
9
+ module EventStoreClient
10
+ module GRPC
11
+ module Commands
12
+ module Streams
13
+ class Tombstone < Command
14
+ use_request EventStore::Client::Streams::TombstoneReq
15
+ use_service EventStore::Client::Streams::Streams::Stub
16
+
17
+ def call(name, options: {})
18
+ opts =
19
+ {
20
+ stream_identifier: {
21
+ streamName: name
22
+ },
23
+ any: {}
24
+ }
25
+
26
+ service.tombstone(request.new(options: opts), metadata: metadata)
27
+ Success()
28
+ rescue ::GRPC::FailedPrecondition
29
+ Failure(:not_found)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'base64'
5
+ require 'net/http'
6
+
7
+ module EventStoreClient
8
+ module GRPC
9
+ class Connection
10
+ include Configuration
11
+
12
+ # Initializes the proper stub with the necessary credentials
13
+ # to create working gRPC connection - Refer to generated grpc files
14
+ # @return [Stub] Instance of a given `Stub` klass
15
+ #
16
+ def call(stub_klass, options: {})
17
+ credentials =
18
+ options[:credentials] ||
19
+ Base64.encode64("#{config.eventstore_user}:#{config.eventstore_password}")
20
+ stub_klass.new(
21
+ "#{config.eventstore_url.host}:#{config.eventstore_url.port}",
22
+ channel_credentials,
23
+ channel_args: { 'authorization' => "Basic #{credentials.delete("\n")}" }
24
+ )
25
+ end
26
+
27
+ private
28
+
29
+ attr_reader :cert
30
+
31
+ def initialize
32
+ @cert =
33
+ Net::HTTP.start(
34
+ config.eventstore_url.host, config.eventstore_url.port,
35
+ use_ssl: true,
36
+ verify_mode: verify_ssl,
37
+ &:peer_cert
38
+ )
39
+ end
40
+
41
+ def channel_credentials
42
+ ::GRPC::Core::ChannelCredentials.new(cert.to_s)
43
+ end
44
+
45
+ def verify_ssl
46
+ config.verify_ssl || OpenSSL::SSL::VERIFY_NONE
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,140 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: cluster.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require 'shared_pb'
7
+ Google::Protobuf::DescriptorPool.generated_pool.build do
8
+ add_file("cluster.proto", :syntax => :proto3) do
9
+ add_message "event_store.cluster.GossipRequest" do
10
+ optional :info, :message, 1, "event_store.cluster.ClusterInfo"
11
+ optional :server, :message, 2, "event_store.cluster.EndPoint"
12
+ end
13
+ add_message "event_store.cluster.ViewChangeRequest" do
14
+ optional :server_id, :message, 1, "event_store.client.shared.UUID"
15
+ optional :server_http, :message, 2, "event_store.cluster.EndPoint"
16
+ optional :attempted_view, :int32, 3
17
+ end
18
+ add_message "event_store.cluster.ViewChangeProofRequest" do
19
+ optional :server_id, :message, 1, "event_store.client.shared.UUID"
20
+ optional :server_http, :message, 2, "event_store.cluster.EndPoint"
21
+ optional :installed_view, :int32, 3
22
+ end
23
+ add_message "event_store.cluster.PrepareRequest" do
24
+ optional :server_id, :message, 1, "event_store.client.shared.UUID"
25
+ optional :server_http, :message, 2, "event_store.cluster.EndPoint"
26
+ optional :view, :int32, 3
27
+ end
28
+ add_message "event_store.cluster.PrepareOkRequest" do
29
+ optional :view, :int32, 1
30
+ optional :server_id, :message, 2, "event_store.client.shared.UUID"
31
+ optional :server_http, :message, 3, "event_store.cluster.EndPoint"
32
+ optional :epoch_number, :int32, 4
33
+ optional :epoch_position, :int64, 5
34
+ optional :epoch_id, :message, 6, "event_store.client.shared.UUID"
35
+ optional :epoch_leader_instance_id, :message, 7, "event_store.client.shared.UUID"
36
+ optional :last_commit_position, :int64, 8
37
+ optional :writer_checkpoint, :int64, 9
38
+ optional :chaser_checkpoint, :int64, 10
39
+ optional :node_priority, :int32, 11
40
+ optional :cluster_info, :message, 12, "event_store.cluster.ClusterInfo"
41
+ end
42
+ add_message "event_store.cluster.ProposalRequest" do
43
+ optional :server_id, :message, 1, "event_store.client.shared.UUID"
44
+ optional :server_http, :message, 2, "event_store.cluster.EndPoint"
45
+ optional :leader_id, :message, 3, "event_store.client.shared.UUID"
46
+ optional :leader_http, :message, 4, "event_store.cluster.EndPoint"
47
+ optional :view, :int32, 5
48
+ optional :epoch_number, :int32, 6
49
+ optional :epoch_position, :int64, 7
50
+ optional :epoch_id, :message, 8, "event_store.client.shared.UUID"
51
+ optional :epoch_leader_instance_id, :message, 9, "event_store.client.shared.UUID"
52
+ optional :last_commit_position, :int64, 10
53
+ optional :writer_checkpoint, :int64, 11
54
+ optional :chaser_checkpoint, :int64, 12
55
+ optional :node_priority, :int32, 13
56
+ end
57
+ add_message "event_store.cluster.AcceptRequest" do
58
+ optional :server_id, :message, 1, "event_store.client.shared.UUID"
59
+ optional :server_http, :message, 2, "event_store.cluster.EndPoint"
60
+ optional :leader_id, :message, 3, "event_store.client.shared.UUID"
61
+ optional :leader_http, :message, 4, "event_store.cluster.EndPoint"
62
+ optional :view, :int32, 5
63
+ end
64
+ add_message "event_store.cluster.LeaderIsResigningRequest" do
65
+ optional :leader_id, :message, 1, "event_store.client.shared.UUID"
66
+ optional :leader_http, :message, 2, "event_store.cluster.EndPoint"
67
+ end
68
+ add_message "event_store.cluster.LeaderIsResigningOkRequest" do
69
+ optional :leader_id, :message, 1, "event_store.client.shared.UUID"
70
+ optional :leader_http, :message, 2, "event_store.cluster.EndPoint"
71
+ optional :server_id, :message, 3, "event_store.client.shared.UUID"
72
+ optional :server_http, :message, 4, "event_store.cluster.EndPoint"
73
+ end
74
+ add_message "event_store.cluster.ClusterInfo" do
75
+ repeated :members, :message, 1, "event_store.cluster.MemberInfo"
76
+ end
77
+ add_message "event_store.cluster.EndPoint" do
78
+ optional :address, :string, 1
79
+ optional :port, :uint32, 2
80
+ end
81
+ add_message "event_store.cluster.MemberInfo" do
82
+ optional :instance_id, :message, 1, "event_store.client.shared.UUID"
83
+ optional :time_stamp, :int64, 2
84
+ optional :state, :enum, 3, "event_store.cluster.MemberInfo.VNodeState"
85
+ optional :is_alive, :bool, 4
86
+ optional :http_end_point, :message, 5, "event_store.cluster.EndPoint"
87
+ optional :internal_tcp, :message, 6, "event_store.cluster.EndPoint"
88
+ optional :external_tcp, :message, 7, "event_store.cluster.EndPoint"
89
+ optional :internal_tcp_uses_tls, :bool, 8
90
+ optional :external_tcp_uses_tls, :bool, 9
91
+ optional :last_commit_position, :int64, 10
92
+ optional :writer_checkpoint, :int64, 11
93
+ optional :chaser_checkpoint, :int64, 12
94
+ optional :epoch_position, :int64, 13
95
+ optional :epoch_number, :int32, 14
96
+ optional :epoch_id, :message, 15, "event_store.client.shared.UUID"
97
+ optional :node_priority, :int32, 16
98
+ optional :is_read_only_replica, :bool, 17
99
+ optional :advertise_host_to_client_as, :string, 18
100
+ optional :advertise_http_port_to_client_as, :uint32, 19
101
+ optional :advertise_tcp_port_to_client_as, :uint32, 20
102
+ end
103
+ add_enum "event_store.cluster.MemberInfo.VNodeState" do
104
+ value :Initializing, 0
105
+ value :DiscoverLeader, 1
106
+ value :Unknown, 2
107
+ value :PreReplica, 3
108
+ value :CatchingUp, 4
109
+ value :Clone, 5
110
+ value :Follower, 6
111
+ value :PreLeader, 7
112
+ value :Leader, 8
113
+ value :Manager, 9
114
+ value :ShuttingDown, 10
115
+ value :Shutdown, 11
116
+ value :ReadOnlyLeaderless, 12
117
+ value :PreReadOnlyReplica, 13
118
+ value :ReadOnlyReplica, 14
119
+ value :ResigningLeader, 15
120
+ end
121
+ end
122
+ end
123
+
124
+ module EventStore
125
+ module Cluster
126
+ GossipRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.GossipRequest").msgclass
127
+ ViewChangeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.ViewChangeRequest").msgclass
128
+ ViewChangeProofRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.ViewChangeProofRequest").msgclass
129
+ PrepareRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.PrepareRequest").msgclass
130
+ PrepareOkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.PrepareOkRequest").msgclass
131
+ ProposalRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.ProposalRequest").msgclass
132
+ AcceptRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.AcceptRequest").msgclass
133
+ LeaderIsResigningRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.LeaderIsResigningRequest").msgclass
134
+ LeaderIsResigningOkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.LeaderIsResigningOkRequest").msgclass
135
+ ClusterInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.ClusterInfo").msgclass
136
+ EndPoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.EndPoint").msgclass
137
+ MemberInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.MemberInfo").msgclass
138
+ MemberInfo::VNodeState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_store.cluster.MemberInfo.VNodeState").enummodule
139
+ end
140
+ end