eh_messaging 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.
@@ -0,0 +1,168 @@
1
+ module EhMessaging
2
+ type payload = Hash[untyped, untyped] | Array[untyped] | String
3
+ type headers = Hash[String | Symbol, untyped]
4
+ type broker_name = Symbol
5
+ type reconsume_options = { ?until_time: Time, ?partitions: Hash[Integer, Integer], ?group: String }
6
+
7
+ class Error < StandardError
8
+ end
9
+
10
+ class Client
11
+ def initialize: () -> void
12
+ def configure: (**untyped) ?{ (Configuration) -> void } -> self
13
+ def configuration: () -> Configuration
14
+ def publish: (String topic, event: String, application_name: String, component: String, correlation_id: String, version: String, partition_key: untyped, payload: payload, ?headers: headers, ?broker: broker_name | String, ?raw: bool) -> DeliveryReport
15
+ def subscribe: (untyped handler) -> Subscriber
16
+ def reconsume: (untyped handler, **reconsume_options) -> untyped
17
+ def boot: () -> self
18
+ def run: () -> untyped
19
+ def shutdown: () -> untyped
20
+ def reset!: () -> self
21
+ end
22
+
23
+ class RecoverableError < StandardError
24
+ end
25
+
26
+ class Configuration
27
+ attr_accessor application_name: String?
28
+ attr_accessor logging: bool
29
+ attr_accessor log_message_body: bool
30
+ attr_accessor poll_timeout: Numeric
31
+ attr_accessor log_level: String
32
+ attr_accessor logger: untyped
33
+
34
+ attr_reader brokers: Hash[broker_name, Hash[Symbol, untyped]]
35
+ attr_reader topics: Hash[String, Hash[Symbol, untyped]]
36
+ attr_reader producer: ProducerSettings
37
+ attr_reader consumer: ConsumerSettings
38
+
39
+ def initialize: () -> void
40
+ def apply: (**untyped) -> void
41
+ def broker: (broker_name name, **untyped) -> void
42
+ def topic: (String name, ?broker: broker_name?, ?side: Symbol, **untyped) -> void
43
+ def validate!: () -> self
44
+ def broker_config: (?broker_name name) -> Hash[Symbol, untyped]
45
+ def topic_config: (String name, ?side: Symbol?) -> Hash[Symbol, untyped]
46
+ def kafka_config: (Hash[Symbol, untyped] connection, ?kind: Symbol, ?group_id: String?) -> Hash[String, untyped]
47
+
48
+ class Settings
49
+ def to_kafka: () -> Hash[String, untyped]
50
+ end
51
+
52
+ class ProducerSettings < Settings
53
+ def metadata_max_age_ms: () -> untyped
54
+ def metadata_max_age_ms=: (untyped) -> untyped
55
+ def message_send_max_retries: () -> untyped
56
+ def message_send_max_retries=: (untyped) -> untyped
57
+ def request_timeout_ms: () -> untyped
58
+ def request_timeout_ms=: (untyped) -> untyped
59
+ def socket_keepalive_enable: () -> untyped
60
+ def socket_keepalive_enable=: (untyped) -> untyped
61
+ def batch_num_messages: () -> untyped
62
+ def batch_num_messages=: (untyped) -> untyped
63
+ def linger_ms: () -> untyped
64
+ def linger_ms=: (untyped) -> untyped
65
+ end
66
+
67
+ class ConsumerSettings < Settings
68
+ def socket_timeout_ms: () -> untyped
69
+ def socket_timeout_ms=: (untyped) -> untyped
70
+ def session_timeout_ms: () -> untyped
71
+ def session_timeout_ms=: (untyped) -> untyped
72
+ def heartbeat_interval_ms: () -> untyped
73
+ def heartbeat_interval_ms=: (untyped) -> untyped
74
+ def max_poll_interval_ms: () -> untyped
75
+ def max_poll_interval_ms=: (untyped) -> untyped
76
+ def metadata_max_age_ms: () -> untyped
77
+ def metadata_max_age_ms=: (untyped) -> untyped
78
+ def socket_keepalive_enable: () -> untyped
79
+ def socket_keepalive_enable=: (untyped) -> untyped
80
+ def auto_offset_reset: () -> String
81
+ def auto_offset_reset=: (String) -> void
82
+ def enable_auto_commit: () -> bool
83
+ def enable_auto_commit=: (bool) -> void
84
+ end
85
+ end
86
+
87
+ class Envelope
88
+ attr_reader payload: untyped
89
+ attr_reader partition_key: untyped
90
+ attr_reader headers: Hash[String, untyped]
91
+ attr_reader event_name: String?
92
+ attr_reader event_id: String?
93
+ attr_reader correlation_id: String?
94
+ attr_reader application_name: String?
95
+ attr_reader component_name: String?
96
+ attr_reader version: String?
97
+ attr_reader timestamp: String?
98
+ attr_reader enqueued_at: Time?
99
+ attr_reader topic: String?
100
+ attr_reader partition: Integer?
101
+ attr_reader offset: Integer?
102
+ attr_reader consumer_group: String?
103
+ attr_reader mode: Symbol?
104
+
105
+ def initialize: (payload: untyped, partition_key: untyped, headers: Hash[String, untyped], ?mode: Symbol?, ?consumer_group: String?, ?topic: String?, ?partition: Integer?, ?offset: Integer?, ?enqueued_at: Time?) -> void
106
+ def self.header: (Hash[untyped, untyped] headers, String | Symbol key) -> untyped
107
+ def self.from_message: (untyped message, mode: Symbol, consumer_group: String) -> Envelope
108
+ def self.headers_from_message: (untyped message) -> Hash[String, untyped]
109
+ def self.decode: (untyped value) -> untyped
110
+ def self.header_bytes: (untyped value) -> (String | Array[untyped])
111
+ def self.timestamp: () -> String
112
+ def self.headers: (event: String, application_name: String, component: String, correlation_id: String, version: String, ?headers: headers) -> Hash[String, untyped]
113
+ end
114
+
115
+ class DeliveryReport
116
+ attr_reader raw: untyped
117
+ attr_reader sent_keys: Array[untyped]
118
+ attr_reader error_keys: Array[untyped]
119
+
120
+ def initialize: (untyped raw, untyped key) -> void
121
+ def error: () -> untyped
122
+ end
123
+
124
+ class Publisher
125
+ attr_reader producers: Hash[broker_name, untyped]
126
+
127
+ def initialize: (Configuration configuration, ?producer_factory: untyped, ?logger: untyped) -> void
128
+ def boot: () -> self
129
+ def publish: (String topic, event: String, application_name: String, component: String, correlation_id: String, version: String, partition_key: untyped, payload: payload, ?headers: headers, ?broker: broker_name | String, ?raw: bool) -> DeliveryReport
130
+ def publish_dead_letter: (String topic, Envelope envelope, Exception error, ?broker: broker_name) -> DeliveryReport
131
+ def publish_raw: (String topic, untyped payload, untyped key, Hash[String, untyped] headers, ?broker: broker_name) -> DeliveryReport
132
+ def topic_exists?: (String topic, ?broker: broker_name) -> bool
133
+ def shutdown: () -> self
134
+ end
135
+
136
+ module Topics
137
+ def self.dead_letter: (String topic, String group) -> String
138
+ def self.recovery: (String topic, String group) -> String
139
+ def self.recovery_group: (String group) -> String
140
+ def self.reconsume_group: (String group) -> String
141
+ end
142
+
143
+ def self.configure: (**untyped) ?{ (Configuration) -> void } -> singleton(EhMessaging)
144
+ def self.configuration: () -> Configuration
145
+ def self.publish: (String topic, event: String, application_name: String, component: String, correlation_id: String, version: String, partition_key: untyped, payload: payload, ?headers: headers, ?broker: broker_name | String, ?raw: bool) -> DeliveryReport
146
+ def self.subscribe: (untyped handler) -> Subscriber
147
+ def self.reconsume: (untyped handler, **reconsume_options) -> untyped
148
+ def self.boot: () -> singleton(EhMessaging)
149
+ def self.run: () -> untyped
150
+ def self.shutdown: () -> untyped
151
+ def self.reset!: () -> untyped
152
+
153
+ class Subscriber
154
+ attr_reader subscriptions: Array[untyped]
155
+
156
+ def initialize: (Configuration configuration, ?consumer_factory: untyped, ?producer: Publisher?, ?logger: untyped) -> void
157
+ def subscribe: (untyped handler) -> self
158
+ def boot: () -> self
159
+ def reconsume: (untyped handler, ?until_time: Time?, ?partitions: Hash[Integer, Integer]?, ?group: String?) -> untyped
160
+ def run: () -> untyped
161
+ def shutdown: () -> self
162
+ end
163
+ end
164
+
165
+ module EhMessagingPublicApiTypecheck
166
+ def self.configure_and_publish: () -> EhMessaging::DeliveryReport
167
+ def self.envelope_and_topics: (EhMessaging::Envelope) -> String
168
+ end
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: eh_messaging
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Diego E
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: logger
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.6'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '1.6'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '2.0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: opentelemetry-api
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '1.3'
39
+ - - "<"
40
+ - !ruby/object:Gem::Version
41
+ version: '2.0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '1.3'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '2.0'
52
+ - !ruby/object:Gem::Dependency
53
+ name: rdkafka
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: 0.29.0
59
+ type: :runtime
60
+ prerelease: false
61
+ version_requirements: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - "~>"
64
+ - !ruby/object:Gem::Version
65
+ version: 0.29.0
66
+ - !ruby/object:Gem::Dependency
67
+ name: rake
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '13.0'
73
+ type: :development
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '13.0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: rspec
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '3.0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '3.0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rbs
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '4.2'
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: '4.2'
108
+ - !ruby/object:Gem::Dependency
109
+ name: standard
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - "~>"
113
+ - !ruby/object:Gem::Version
114
+ version: '1.43'
115
+ type: :development
116
+ prerelease: false
117
+ version_requirements: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '1.43'
122
+ - !ruby/object:Gem::Dependency
123
+ name: steep
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '2.1'
129
+ type: :development
130
+ prerelease: false
131
+ version_requirements: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: '2.1'
136
+ description: A Ruby library for producing and consuming messages on Azure Event Hubs
137
+ using its Kafka-compatible endpoint
138
+ executables: []
139
+ extensions: []
140
+ extra_rdoc_files: []
141
+ files:
142
+ - eh_messaging.gemspec
143
+ - lib/eh_messaging.rb
144
+ - lib/eh_messaging/audit_logger.rb
145
+ - lib/eh_messaging/client.rb
146
+ - lib/eh_messaging/configuration.rb
147
+ - lib/eh_messaging/dead_letter_router.rb
148
+ - lib/eh_messaging/envelope.rb
149
+ - lib/eh_messaging/publisher.rb
150
+ - lib/eh_messaging/recoverable_error.rb
151
+ - lib/eh_messaging/subscriber.rb
152
+ - lib/eh_messaging/subscriber_metadata.rb
153
+ - lib/eh_messaging/subscriber_polling.rb
154
+ - lib/eh_messaging/telemetry.rb
155
+ - lib/eh_messaging/topics.rb
156
+ - lib/eh_messaging/version.rb
157
+ - sig/eh_messaging.rbs
158
+ licenses: []
159
+ metadata: {}
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 3.4.0
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubygems_version: 3.6.9
175
+ specification_version: 4
176
+ summary: Ruby library for Azure Event Hubs over the Kafka-compatible protocol
177
+ test_files: []