nats_wave 1.1.12 → 1.1.14
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/Gemfile.lock +1 -1
- data/README.md +934 -1246
- data/lib/generators/nats_wave/templates/initializer.rb +14 -14
- data/lib/nats_wave/adapters/datadog_metrics.rb +1 -1
- data/lib/nats_wave/auto_registration.rb +10 -10
- data/lib/nats_wave/client.rb +0 -764
- data/lib/nats_wave/concerns/mappable.rb +75 -890
- data/lib/nats_wave/configuration.rb +1 -1
- data/lib/nats_wave/metrics.rb +3 -3
- data/lib/nats_wave/model_registry.rb +3 -3
- data/lib/nats_wave/railtie.rb +2 -2
- data/lib/nats_wave/subscriber.rb +2 -2
- data/lib/nats_wave/version.rb +1 -1
- data/lib/nats_wave.rb +0 -99
- metadata +2 -2
@@ -18,7 +18,7 @@ module NatsWave
|
|
18
18
|
def initialize(options = {})
|
19
19
|
@nats_url = ENV['NATS_URL'] || "nats://localhost:4222"
|
20
20
|
@service_name = ENV['NATS_SERVICE_NAME'] || "purplewave"
|
21
|
-
@version = ENV['NATS_SERVICE_VERSION'] || "1.1.
|
21
|
+
@version = ENV['NATS_SERVICE_VERSION'] || "1.1.14"
|
22
22
|
@instance_id = ENV['NATS_INSTANCE_ID'] || Socket.gethostname
|
23
23
|
@database_url = ENV['NATS_DATABASE_URL'] || nil
|
24
24
|
@connection_pool_size = (ENV['NATS_CONNECTION_POOL_SIZE'] || 10).to_i
|
data/lib/nats_wave/metrics.rb
CHANGED
@@ -20,7 +20,7 @@ module NatsWave
|
|
20
20
|
}
|
21
21
|
}.merge(config))
|
22
22
|
|
23
|
-
|
23
|
+
NatsWave.logger.info "🐕 NatsWave configured with Datadog metrics"
|
24
24
|
end
|
25
25
|
|
26
26
|
def increment_published_messages(subject, model: nil, action: nil)
|
@@ -194,7 +194,7 @@ module NatsWave
|
|
194
194
|
def log_metric(type, subject, model = nil, action = nil)
|
195
195
|
return unless defined?(Rails)
|
196
196
|
|
197
|
-
|
197
|
+
NatsWave.logger.debug({
|
198
198
|
metric: "nats_wave.message.#{type}",
|
199
199
|
subject: subject,
|
200
200
|
model: model,
|
@@ -207,7 +207,7 @@ module NatsWave
|
|
207
207
|
return unless defined?(Rails)
|
208
208
|
|
209
209
|
level = success ? :debug : :warn
|
210
|
-
|
210
|
+
NatsWave.logger.send(level, {
|
211
211
|
metric: 'nats_wave.processing_time',
|
212
212
|
subject: subject,
|
213
213
|
duration_seconds: duration.round(3),
|
@@ -9,13 +9,13 @@ module NatsWave
|
|
9
9
|
class << self
|
10
10
|
# Register a mapping from local model to external models
|
11
11
|
def register_mapping(local_model, external_mappings)
|
12
|
-
|
12
|
+
NatsWave.logger.debug "🗂️ Registering mapping: #{local_model} -> #{external_mappings.inspect}"
|
13
13
|
@mappings[local_model] = external_mappings
|
14
14
|
end
|
15
15
|
|
16
16
|
# Register a reverse mapping from external model to local model
|
17
17
|
def register_reverse_mapping(external_model, local_model, mapping_config)
|
18
|
-
|
18
|
+
NatsWave.logger.debug "🔄 Registering reverse mapping: #{external_model} -> #{local_model} with config: #{mapping_config.inspect}"
|
19
19
|
@reverse_mappings[external_model] ||= {}
|
20
20
|
@reverse_mappings[external_model][local_model] = mapping_config
|
21
21
|
end
|
@@ -33,7 +33,7 @@ module NatsWave
|
|
33
33
|
|
34
34
|
@subscriptions << subscription
|
35
35
|
|
36
|
-
|
36
|
+
NatsWave.logger.debug "📡 Registered subscription: #{model} -> #{subjects.join(', ')}"
|
37
37
|
end
|
38
38
|
|
39
39
|
# Debug method to show all registrations
|
data/lib/nats_wave/railtie.rb
CHANGED
@@ -59,7 +59,7 @@
|
|
59
59
|
# config.dead_letter_queue = yaml_config.dig('error_handling', 'dead_letter_queue') if yaml_config.dig('error_handling', 'dead_letter_queue')
|
60
60
|
# end
|
61
61
|
# rescue => e
|
62
|
-
#
|
62
|
+
# NatsWave.logger.warn "Failed to load NATS Wave YAML configuration: #{e.message}"
|
63
63
|
# end
|
64
64
|
#
|
65
65
|
# # Environment-specific overrides
|
@@ -179,7 +179,7 @@ module NatsWave
|
|
179
179
|
config.dead_letter_queue = yaml_config.dig('error_handling', 'dead_letter_queue') if yaml_config.dig('error_handling', 'dead_letter_queue')
|
180
180
|
end
|
181
181
|
rescue => e
|
182
|
-
|
182
|
+
NatsWave.logger.warn "Failed to load NATS Wave YAML configuration: #{e.message}"
|
183
183
|
end
|
184
184
|
|
185
185
|
# Environment-specific overrides
|
data/lib/nats_wave/subscriber.rb
CHANGED
@@ -185,7 +185,7 @@
|
|
185
185
|
# connection_healthy = check_connection_health
|
186
186
|
#
|
187
187
|
# if connection_healthy
|
188
|
-
# NatsWave.logger.debug "
|
188
|
+
# NatsWave.logger.debug "💜 Subscriber connection healthy - #{@nats_subscriptions.size} active subscriptions"
|
189
189
|
# @connection_stats[:consecutive_failures] = 0
|
190
190
|
# @connection_stats[:last_successful_connection] = Time.current
|
191
191
|
# else
|
@@ -576,7 +576,7 @@ module NatsWave
|
|
576
576
|
connection_healthy = check_connection_health
|
577
577
|
|
578
578
|
if connection_healthy
|
579
|
-
NatsWave.logger.debug "
|
579
|
+
NatsWave.logger.debug "💜 Subscriber connection healthy - #{@nats_subscriptions.size} active subscriptions"
|
580
580
|
@connection_stats[:consecutive_failures] = 0
|
581
581
|
@connection_stats[:last_successful_connection] = Time.current
|
582
582
|
else
|
data/lib/nats_wave/version.rb
CHANGED
data/lib/nats_wave.rb
CHANGED
@@ -1,102 +1,3 @@
|
|
1
|
-
# # frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# require 'active_support/all'
|
4
|
-
# require 'logger'
|
5
|
-
# require 'socket'
|
6
|
-
# require 'json'
|
7
|
-
# require 'securerandom'
|
8
|
-
#
|
9
|
-
# require_relative "nats_wave/version"
|
10
|
-
# require_relative "nats_wave/errors"
|
11
|
-
# require_relative "nats_wave/configuration"
|
12
|
-
# require_relative "nats_wave/client"
|
13
|
-
# require_relative "nats_wave/publisher"
|
14
|
-
# require_relative "nats_wave/subscriber"
|
15
|
-
# require_relative "nats_wave/message_transformer"
|
16
|
-
# require_relative "nats_wave/model_mapper"
|
17
|
-
# require_relative "nats_wave/model_registry"
|
18
|
-
# require_relative "nats_wave/concerns/mappable"
|
19
|
-
# require_relative "nats_wave/adapters/datadog_metrics"
|
20
|
-
# require_relative "nats_wave/database_connector"
|
21
|
-
# require_relative "nats_wave/schema_registry"
|
22
|
-
# require_relative "nats_wave/dead_letter_queue"
|
23
|
-
# require_relative "nats_wave/metrics"
|
24
|
-
#
|
25
|
-
# # Middleware
|
26
|
-
# require_relative "nats_wave/middleware/base"
|
27
|
-
# require_relative "nats_wave/middleware/authentication"
|
28
|
-
# require_relative "nats_wave/middleware/validation"
|
29
|
-
# require_relative "nats_wave/middleware/logging"
|
30
|
-
#
|
31
|
-
# # Adapters
|
32
|
-
# require_relative "nats_wave/adapters/active_record"
|
33
|
-
#
|
34
|
-
# # Rails integration
|
35
|
-
# require_relative "nats_wave/railtie" if defined?(Rails)
|
36
|
-
#
|
37
|
-
# module NatsWave
|
38
|
-
# class << self
|
39
|
-
# attr_accessor :configuration
|
40
|
-
#
|
41
|
-
# def client
|
42
|
-
# @client ||= Client.new
|
43
|
-
# end
|
44
|
-
#
|
45
|
-
# def configure
|
46
|
-
# self.configuration ||= Configuration.new
|
47
|
-
# yield(configuration) if block_given?
|
48
|
-
# reset_client!
|
49
|
-
# configuration
|
50
|
-
# end
|
51
|
-
#
|
52
|
-
# def reset_client!
|
53
|
-
# @client = nil
|
54
|
-
# end
|
55
|
-
#
|
56
|
-
# def logger
|
57
|
-
# @logger ||= begin
|
58
|
-
# if defined?(Rails) && Rails.logger
|
59
|
-
# Rails.logger
|
60
|
-
# else
|
61
|
-
# Logger.new($stdout).tap { |l| l.level = Logger::INFO }
|
62
|
-
# end
|
63
|
-
# end
|
64
|
-
# end
|
65
|
-
#
|
66
|
-
# def logger=(logger)
|
67
|
-
# @logger = logger
|
68
|
-
# end
|
69
|
-
#
|
70
|
-
# # Convenience methods
|
71
|
-
# def publish(subject:, model:, action:, data:, metadata: {})
|
72
|
-
# client.publish(
|
73
|
-
# subject: subject,
|
74
|
-
# model: model,
|
75
|
-
# action: action,
|
76
|
-
# data: data,
|
77
|
-
# metadata: metadata
|
78
|
-
# )
|
79
|
-
# end
|
80
|
-
#
|
81
|
-
# def subscribe(subjects:, model_mappings: {}, &block)
|
82
|
-
# client.subscribe(
|
83
|
-
# subjects: subjects,
|
84
|
-
# model_mappings: model_mappings,
|
85
|
-
# &block
|
86
|
-
# )
|
87
|
-
# NatsWave.logger.info "Completely subscribed to #{subjects.size} subjects"
|
88
|
-
# end
|
89
|
-
#
|
90
|
-
# def start_subscriber
|
91
|
-
# client.start_subscriber
|
92
|
-
# end
|
93
|
-
#
|
94
|
-
# def health_check
|
95
|
-
# client.health_check
|
96
|
-
# end
|
97
|
-
# end
|
98
|
-
# end
|
99
|
-
|
100
1
|
# frozen_string_literal: true
|
101
2
|
|
102
3
|
require 'active_support/all'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nats_wave
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeffrey Dabo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-07-
|
11
|
+
date: 2025-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nats-pure
|