smart_message 0.0.7 → 0.0.9
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/.gitignore +1 -0
- data/.irbrc +24 -0
- data/CHANGELOG.md +143 -0
- data/Gemfile.lock +6 -1
- data/README.md +289 -15
- data/docs/README.md +3 -1
- data/docs/addressing.md +119 -13
- data/docs/architecture.md +68 -0
- data/docs/dead_letter_queue.md +673 -0
- data/docs/dispatcher.md +87 -0
- data/docs/examples.md +59 -1
- data/docs/getting-started.md +8 -1
- data/docs/logging.md +382 -326
- data/docs/message_filtering.md +451 -0
- data/examples/01_point_to_point_orders.rb +54 -53
- data/examples/02_publish_subscribe_events.rb +14 -10
- data/examples/03_many_to_many_chat.rb +16 -8
- data/examples/04_redis_smart_home_iot.rb +20 -10
- data/examples/05_proc_handlers.rb +12 -11
- data/examples/06_custom_logger_example.rb +95 -100
- data/examples/07_error_handling_scenarios.rb +4 -2
- data/examples/08_entity_addressing_basic.rb +18 -6
- data/examples/08_entity_addressing_with_filtering.rb +27 -9
- data/examples/09_dead_letter_queue_demo.rb +559 -0
- data/examples/09_regex_filtering_microservices.rb +407 -0
- data/examples/10_header_block_configuration.rb +263 -0
- data/examples/11_global_configuration_example.rb +219 -0
- data/examples/README.md +102 -0
- data/examples/dead_letters.jsonl +12 -0
- data/examples/performance_metrics/benchmark_results_ractor_20250818_205603.json +135 -0
- data/examples/performance_metrics/benchmark_results_ractor_20250818_205831.json +135 -0
- data/examples/performance_metrics/benchmark_results_test_20250818_204942.json +130 -0
- data/examples/performance_metrics/benchmark_results_threadpool_20250818_204942.json +130 -0
- data/examples/performance_metrics/benchmark_results_threadpool_20250818_204959.json +130 -0
- data/examples/performance_metrics/benchmark_results_threadpool_20250818_205044.json +130 -0
- data/examples/performance_metrics/benchmark_results_threadpool_20250818_205109.json +130 -0
- data/examples/performance_metrics/benchmark_results_threadpool_20250818_205252.json +130 -0
- data/examples/performance_metrics/benchmark_results_unknown_20250819_172852.json +130 -0
- data/examples/performance_metrics/compare_benchmarks.rb +519 -0
- data/examples/performance_metrics/dead_letters.jsonl +3100 -0
- data/examples/performance_metrics/performance_benchmark.rb +344 -0
- data/examples/show_logger.rb +367 -0
- data/examples/show_me.rb +145 -0
- data/examples/temp.txt +94 -0
- data/examples/tmux_chat/bot_agent.rb +4 -2
- data/examples/tmux_chat/human_agent.rb +4 -2
- data/examples/tmux_chat/room_monitor.rb +4 -2
- data/examples/tmux_chat/shared_chat_system.rb +6 -3
- data/lib/smart_message/addressing.rb +259 -0
- data/lib/smart_message/base.rb +121 -599
- data/lib/smart_message/circuit_breaker.rb +23 -6
- data/lib/smart_message/configuration.rb +199 -0
- data/lib/smart_message/dead_letter_queue.rb +361 -0
- data/lib/smart_message/dispatcher.rb +90 -49
- data/lib/smart_message/header.rb +5 -0
- data/lib/smart_message/logger/base.rb +21 -1
- data/lib/smart_message/logger/default.rb +88 -138
- data/lib/smart_message/logger/lumberjack.rb +324 -0
- data/lib/smart_message/logger/null.rb +81 -0
- data/lib/smart_message/logger.rb +17 -9
- data/lib/smart_message/messaging.rb +100 -0
- data/lib/smart_message/plugins.rb +132 -0
- data/lib/smart_message/serializer/base.rb +25 -8
- data/lib/smart_message/serializer/json.rb +5 -4
- data/lib/smart_message/subscription.rb +193 -0
- data/lib/smart_message/transport/base.rb +84 -53
- data/lib/smart_message/transport/memory_transport.rb +7 -5
- data/lib/smart_message/transport/redis_transport.rb +15 -45
- data/lib/smart_message/transport/stdout_transport.rb +18 -8
- data/lib/smart_message/transport.rb +1 -34
- data/lib/smart_message/utilities.rb +142 -0
- data/lib/smart_message/version.rb +1 -1
- data/lib/smart_message/versioning.rb +85 -0
- data/lib/smart_message/wrapper.rb.bak +132 -0
- data/lib/smart_message.rb +74 -27
- data/smart_message.gemspec +3 -0
- metadata +77 -3
- data/lib/smart_message/serializer.rb +0 -10
- data/lib/smart_message/wrapper.rb +0 -43
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_message
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dewayne VanHoozer
|
@@ -79,6 +79,48 @@ dependencies:
|
|
79
79
|
- - ">="
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '0'
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: zeitwerk
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: lumberjack
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :runtime
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: colorize
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
type: :runtime
|
118
|
+
prerelease: false
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
82
124
|
- !ruby/object:Gem::Dependency
|
83
125
|
name: bundler
|
84
126
|
requirement: !ruby/object:Gem::Requirement
|
@@ -203,6 +245,7 @@ extra_rdoc_files: []
|
|
203
245
|
files:
|
204
246
|
- ".envrc"
|
205
247
|
- ".gitignore"
|
248
|
+
- ".irbrc"
|
206
249
|
- ".travis.yml"
|
207
250
|
- CHANGELOG.md
|
208
251
|
- COMMITS.md
|
@@ -215,11 +258,13 @@ files:
|
|
215
258
|
- docs/README.md
|
216
259
|
- docs/addressing.md
|
217
260
|
- docs/architecture.md
|
261
|
+
- docs/dead_letter_queue.md
|
218
262
|
- docs/dispatcher.md
|
219
263
|
- docs/examples.md
|
220
264
|
- docs/getting-started.md
|
221
265
|
- docs/ideas_to_think_about.md
|
222
266
|
- docs/logging.md
|
267
|
+
- docs/message_filtering.md
|
223
268
|
- docs/message_processing.md
|
224
269
|
- docs/proc_handlers_summary.md
|
225
270
|
- docs/properties.md
|
@@ -236,8 +281,28 @@ files:
|
|
236
281
|
- examples/07_error_handling_scenarios.rb
|
237
282
|
- examples/08_entity_addressing_basic.rb
|
238
283
|
- examples/08_entity_addressing_with_filtering.rb
|
284
|
+
- examples/09_dead_letter_queue_demo.rb
|
285
|
+
- examples/09_regex_filtering_microservices.rb
|
286
|
+
- examples/10_header_block_configuration.rb
|
287
|
+
- examples/11_global_configuration_example.rb
|
239
288
|
- examples/README.md
|
289
|
+
- examples/dead_letters.jsonl
|
290
|
+
- examples/performance_metrics/benchmark_results_ractor_20250818_205603.json
|
291
|
+
- examples/performance_metrics/benchmark_results_ractor_20250818_205831.json
|
292
|
+
- examples/performance_metrics/benchmark_results_test_20250818_204942.json
|
293
|
+
- examples/performance_metrics/benchmark_results_threadpool_20250818_204942.json
|
294
|
+
- examples/performance_metrics/benchmark_results_threadpool_20250818_204959.json
|
295
|
+
- examples/performance_metrics/benchmark_results_threadpool_20250818_205044.json
|
296
|
+
- examples/performance_metrics/benchmark_results_threadpool_20250818_205109.json
|
297
|
+
- examples/performance_metrics/benchmark_results_threadpool_20250818_205252.json
|
298
|
+
- examples/performance_metrics/benchmark_results_unknown_20250819_172852.json
|
299
|
+
- examples/performance_metrics/compare_benchmarks.rb
|
300
|
+
- examples/performance_metrics/dead_letters.jsonl
|
301
|
+
- examples/performance_metrics/performance_benchmark.rb
|
302
|
+
- examples/show_logger.rb
|
303
|
+
- examples/show_me.rb
|
240
304
|
- examples/smart_home_iot_dataflow.md
|
305
|
+
- examples/temp.txt
|
241
306
|
- examples/tmux_chat/README.md
|
242
307
|
- examples/tmux_chat/bot_agent.rb
|
243
308
|
- examples/tmux_chat/human_agent.rb
|
@@ -247,8 +312,11 @@ files:
|
|
247
312
|
- examples/tmux_chat/stop_chat_demo.sh
|
248
313
|
- lib/simple_stats.rb
|
249
314
|
- lib/smart_message.rb
|
315
|
+
- lib/smart_message/addressing.rb
|
250
316
|
- lib/smart_message/base.rb
|
251
317
|
- lib/smart_message/circuit_breaker.rb
|
318
|
+
- lib/smart_message/configuration.rb
|
319
|
+
- lib/smart_message/dead_letter_queue.rb
|
252
320
|
- lib/smart_message/dispatcher.rb
|
253
321
|
- lib/smart_message/dispatcher/.keep
|
254
322
|
- lib/smart_message/errors.rb
|
@@ -256,19 +324,25 @@ files:
|
|
256
324
|
- lib/smart_message/logger.rb
|
257
325
|
- lib/smart_message/logger/base.rb
|
258
326
|
- lib/smart_message/logger/default.rb
|
327
|
+
- lib/smart_message/logger/lumberjack.rb
|
328
|
+
- lib/smart_message/logger/null.rb
|
329
|
+
- lib/smart_message/messaging.rb
|
330
|
+
- lib/smart_message/plugins.rb
|
259
331
|
- lib/smart_message/property_descriptions.rb
|
260
332
|
- lib/smart_message/property_validations.rb
|
261
|
-
- lib/smart_message/serializer.rb
|
262
333
|
- lib/smart_message/serializer/base.rb
|
263
334
|
- lib/smart_message/serializer/json.rb
|
335
|
+
- lib/smart_message/subscription.rb
|
264
336
|
- lib/smart_message/transport.rb
|
265
337
|
- lib/smart_message/transport/base.rb
|
266
338
|
- lib/smart_message/transport/memory_transport.rb
|
267
339
|
- lib/smart_message/transport/redis_transport.rb
|
268
340
|
- lib/smart_message/transport/registry.rb
|
269
341
|
- lib/smart_message/transport/stdout_transport.rb
|
342
|
+
- lib/smart_message/utilities.rb
|
270
343
|
- lib/smart_message/version.rb
|
271
|
-
- lib/smart_message/
|
344
|
+
- lib/smart_message/versioning.rb
|
345
|
+
- lib/smart_message/wrapper.rb.bak
|
272
346
|
- smart_message.gemspec
|
273
347
|
homepage: https://github.com/MadBomber/smart_message
|
274
348
|
licenses: []
|
@@ -1,10 +0,0 @@
|
|
1
|
-
# lib/smart_message/serializer.rb
|
2
|
-
# encoding: utf-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
|
5
|
-
require_relative 'serializer/base'
|
6
|
-
require_relative 'serializer/json'
|
7
|
-
|
8
|
-
module SmartMessage::Serializer
|
9
|
-
# Serializer module for message encoding/decoding
|
10
|
-
end # module SmartMessage::Serializer
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# lib/smart_message/wrapper.rb
|
2
|
-
# encoding: utf-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
|
5
|
-
# TODO: consider having a serializer plugin for the wrapper that is
|
6
|
-
# different than that used for the payload.
|
7
|
-
|
8
|
-
require_relative './header.rb'
|
9
|
-
|
10
|
-
module SmartMessage
|
11
|
-
module Wrapper
|
12
|
-
# Every smart message has a common wrapper format that contains
|
13
|
-
# information used to support the dispatching of subscribed
|
14
|
-
# messages upon receipt from a transport as well as the serialized
|
15
|
-
# payload.
|
16
|
-
class Base < Hashie::Dash
|
17
|
-
include Hashie::Extensions::IndifferentAccess
|
18
|
-
include Hashie::Extensions::MergeInitializer
|
19
|
-
include Hashie::Extensions::MethodAccess
|
20
|
-
|
21
|
-
# Common attributes of the smart message standard header
|
22
|
-
# Using '_sm_' as a prefix to avoid potential collision with
|
23
|
-
# a user's message definition.
|
24
|
-
property :_sm_header
|
25
|
-
property :_sm_payload
|
26
|
-
|
27
|
-
def initialize(**props, &block)
|
28
|
-
attributes = {
|
29
|
-
_sm_header: SmartMessage::Header.new(
|
30
|
-
uuid: SecureRandom.uuid,
|
31
|
-
message_class: self.class.to_s,
|
32
|
-
published_at: 2,
|
33
|
-
publisher_pid: 3
|
34
|
-
)
|
35
|
-
}.merge(props)
|
36
|
-
|
37
|
-
super(attributes, &block)
|
38
|
-
end
|
39
|
-
|
40
|
-
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|