karafka 2.5.5 → 2.5.6

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 (211) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/LICENSE-COMM +4 -0
  4. data/README.md +2 -2
  5. data/certs/expired.txt +2 -0
  6. data/karafka.gemspec +23 -23
  7. data/lib/active_job/karafka.rb +2 -2
  8. data/lib/active_job/queue_adapters/karafka_adapter.rb +5 -5
  9. data/lib/karafka/active_job/consumer.rb +3 -3
  10. data/lib/karafka/active_job/current_attributes.rb +4 -4
  11. data/lib/karafka/active_job/job_options_contract.rb +2 -2
  12. data/lib/karafka/admin/acl.rb +3 -3
  13. data/lib/karafka/admin/configs/resource.rb +1 -1
  14. data/lib/karafka/admin/configs.rb +1 -1
  15. data/lib/karafka/admin/consumer_groups.rb +8 -8
  16. data/lib/karafka/admin/contracts/replication.rb +2 -2
  17. data/lib/karafka/admin/replication.rb +21 -21
  18. data/lib/karafka/admin/topics.rb +6 -6
  19. data/lib/karafka/admin.rb +4 -5
  20. data/lib/karafka/app.rb +3 -3
  21. data/lib/karafka/base_consumer.rb +34 -30
  22. data/lib/karafka/cli/base.rb +8 -8
  23. data/lib/karafka/cli/console.rb +1 -1
  24. data/lib/karafka/cli/contracts/server.rb +12 -12
  25. data/lib/karafka/cli/help.rb +2 -2
  26. data/lib/karafka/cli/info.rb +4 -4
  27. data/lib/karafka/cli/install.rb +11 -11
  28. data/lib/karafka/cli/server.rb +6 -6
  29. data/lib/karafka/cli/swarm.rb +1 -1
  30. data/lib/karafka/cli/topics/align.rb +4 -4
  31. data/lib/karafka/cli/topics/base.rb +5 -5
  32. data/lib/karafka/cli/topics/create.rb +2 -2
  33. data/lib/karafka/cli/topics/delete.rb +2 -2
  34. data/lib/karafka/cli/topics/help.rb +5 -1
  35. data/lib/karafka/cli/topics/plan.rb +16 -16
  36. data/lib/karafka/cli/topics/repartition.rb +3 -3
  37. data/lib/karafka/cli/topics.rb +22 -22
  38. data/lib/karafka/cli.rb +2 -2
  39. data/lib/karafka/connection/client.rb +17 -17
  40. data/lib/karafka/connection/listener.rb +6 -6
  41. data/lib/karafka/connection/mode.rb +1 -1
  42. data/lib/karafka/connection/proxy.rb +1 -1
  43. data/lib/karafka/connection/status.rb +2 -2
  44. data/lib/karafka/constraints.rb +3 -3
  45. data/lib/karafka/embedded.rb +3 -3
  46. data/lib/karafka/env.rb +4 -4
  47. data/lib/karafka/errors.rb +3 -0
  48. data/lib/karafka/execution_mode.rb +1 -1
  49. data/lib/karafka/helpers/config_importer.rb +2 -2
  50. data/lib/karafka/helpers/multi_delegator.rb +1 -1
  51. data/lib/karafka/instrumentation/assignments_tracker.rb +9 -9
  52. data/lib/karafka/instrumentation/callbacks/error.rb +5 -5
  53. data/lib/karafka/instrumentation/callbacks/oauthbearer_token_refresh.rb +4 -4
  54. data/lib/karafka/instrumentation/callbacks/rebalance.rb +6 -6
  55. data/lib/karafka/instrumentation/callbacks/statistics.rb +5 -5
  56. data/lib/karafka/instrumentation/logger.rb +7 -7
  57. data/lib/karafka/instrumentation/logger_listener.rb +53 -53
  58. data/lib/karafka/instrumentation/vendors/appsignal/base.rb +1 -1
  59. data/lib/karafka/instrumentation/vendors/appsignal/client.rb +1 -1
  60. data/lib/karafka/instrumentation/vendors/appsignal/errors_listener.rb +1 -1
  61. data/lib/karafka/instrumentation/vendors/appsignal/metrics_listener.rb +36 -36
  62. data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +28 -28
  63. data/lib/karafka/instrumentation/vendors/datadog/metrics_listener.rb +38 -38
  64. data/lib/karafka/instrumentation/vendors/kubernetes/base_listener.rb +5 -5
  65. data/lib/karafka/instrumentation/vendors/kubernetes/liveness_listener.rb +1 -1
  66. data/lib/karafka/instrumentation/vendors/kubernetes/swarm_liveness_listener.rb +1 -1
  67. data/lib/karafka/licenser.rb +115 -8
  68. data/lib/karafka/messages/messages.rb +1 -1
  69. data/lib/karafka/patches/rdkafka/bindings.rb +2 -2
  70. data/lib/karafka/pro/active_job/job_options_contract.rb +2 -2
  71. data/lib/karafka/pro/cleaner/messages/messages.rb +10 -0
  72. data/lib/karafka/pro/cli/contracts/server.rb +12 -12
  73. data/lib/karafka/pro/cli/parallel_segments/base.rb +4 -4
  74. data/lib/karafka/pro/cli/parallel_segments/collapse.rb +5 -5
  75. data/lib/karafka/pro/cli/parallel_segments/distribute.rb +3 -3
  76. data/lib/karafka/pro/cli/parallel_segments.rb +7 -7
  77. data/lib/karafka/pro/cli/topics/health.rb +162 -0
  78. data/lib/karafka/pro/cli/topics.rb +52 -0
  79. data/lib/karafka/pro/connection/manager.rb +14 -14
  80. data/lib/karafka/pro/encryption/contracts/config.rb +2 -2
  81. data/lib/karafka/pro/encryption/messages/middleware.rb +2 -2
  82. data/lib/karafka/pro/encryption/messages/parser.rb +2 -2
  83. data/lib/karafka/pro/encryption/setup/config.rb +2 -2
  84. data/lib/karafka/pro/iterator/tpl_builder.rb +2 -2
  85. data/lib/karafka/pro/iterator.rb +1 -1
  86. data/lib/karafka/pro/loader.rb +2 -1
  87. data/lib/karafka/pro/processing/adaptive_iterator/consumer.rb +1 -1
  88. data/lib/karafka/pro/processing/coordinators/virtual_offset_manager.rb +7 -7
  89. data/lib/karafka/pro/processing/filters/base.rb +1 -1
  90. data/lib/karafka/pro/processing/filters/delayer.rb +2 -2
  91. data/lib/karafka/pro/processing/filters/inline_insights_delayer.rb +1 -1
  92. data/lib/karafka/pro/processing/offset_metadata/consumer.rb +1 -1
  93. data/lib/karafka/pro/processing/parallel_segments/filters/base.rb +6 -6
  94. data/lib/karafka/pro/processing/partitioner.rb +3 -3
  95. data/lib/karafka/pro/processing/periodic_job/consumer.rb +6 -5
  96. data/lib/karafka/pro/processing/piping/consumer.rb +7 -7
  97. data/lib/karafka/pro/processing/schedulers/base.rb +5 -5
  98. data/lib/karafka/pro/processing/schedulers/default.rb +5 -5
  99. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom.rb +6 -3
  100. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom_vp.rb +6 -3
  101. data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom_vp.rb +6 -3
  102. data/lib/karafka/pro/processing/strategies/aj/lrj_mom_vp.rb +2 -2
  103. data/lib/karafka/pro/processing/strategies/default.rb +22 -22
  104. data/lib/karafka/pro/processing/strategies/dlq/default.rb +7 -7
  105. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj.rb +6 -3
  106. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom.rb +6 -3
  107. data/lib/karafka/pro/processing/strategies/ftr/default.rb +2 -2
  108. data/lib/karafka/pro/processing/strategies/lrj/default.rb +2 -2
  109. data/lib/karafka/pro/processing/strategies/lrj/ftr.rb +6 -3
  110. data/lib/karafka/pro/processing/strategies/lrj/ftr_mom.rb +6 -3
  111. data/lib/karafka/pro/processing/strategies/lrj/mom.rb +2 -2
  112. data/lib/karafka/pro/recurring_tasks/consumer.rb +2 -2
  113. data/lib/karafka/pro/recurring_tasks/contracts/config.rb +2 -2
  114. data/lib/karafka/pro/recurring_tasks/contracts/task.rb +2 -2
  115. data/lib/karafka/pro/recurring_tasks/dispatcher.rb +2 -2
  116. data/lib/karafka/pro/recurring_tasks/listener.rb +1 -1
  117. data/lib/karafka/pro/recurring_tasks/matcher.rb +2 -2
  118. data/lib/karafka/pro/recurring_tasks/serializer.rb +5 -5
  119. data/lib/karafka/pro/recurring_tasks/setup/config.rb +3 -3
  120. data/lib/karafka/pro/recurring_tasks/task.rb +4 -4
  121. data/lib/karafka/pro/recurring_tasks.rb +4 -4
  122. data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +2 -2
  123. data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +2 -2
  124. data/lib/karafka/pro/routing/features/dead_letter_queue/topic.rb +1 -1
  125. data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +2 -2
  126. data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +2 -2
  127. data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +2 -2
  128. data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +1 -1
  129. data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +2 -2
  130. data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +2 -2
  131. data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +2 -2
  132. data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +2 -2
  133. data/lib/karafka/pro/routing/features/long_running_job/topic.rb +1 -1
  134. data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +2 -2
  135. data/lib/karafka/pro/routing/features/multiplexing.rb +5 -5
  136. data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +1 -1
  137. data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +2 -2
  138. data/lib/karafka/pro/routing/features/offset_metadata/topic.rb +1 -1
  139. data/lib/karafka/pro/routing/features/offset_metadata.rb +1 -1
  140. data/lib/karafka/pro/routing/features/parallel_segments/consumer_group.rb +5 -5
  141. data/lib/karafka/pro/routing/features/parallel_segments/contracts/consumer_group.rb +2 -2
  142. data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +2 -2
  143. data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +3 -3
  144. data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +2 -2
  145. data/lib/karafka/pro/routing/features/patterns/topic.rb +1 -1
  146. data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +2 -2
  147. data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +2 -2
  148. data/lib/karafka/pro/routing/features/periodic_job/topic.rb +1 -1
  149. data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +7 -7
  150. data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +2 -2
  151. data/lib/karafka/pro/routing/features/scheduled_messages/builder.rb +13 -13
  152. data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +2 -2
  153. data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +2 -2
  154. data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +2 -2
  155. data/lib/karafka/pro/routing/features/swarm.rb +1 -1
  156. data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +2 -2
  157. data/lib/karafka/pro/routing/features/virtual_partitions/config.rb +7 -7
  158. data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +2 -2
  159. data/lib/karafka/pro/scheduled_messages/consumer.rb +4 -4
  160. data/lib/karafka/pro/scheduled_messages/contracts/config.rb +2 -2
  161. data/lib/karafka/pro/scheduled_messages/contracts/message.rb +10 -10
  162. data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +2 -2
  163. data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +4 -4
  164. data/lib/karafka/pro/scheduled_messages/dispatcher.rb +5 -5
  165. data/lib/karafka/pro/scheduled_messages/proxy.rb +8 -8
  166. data/lib/karafka/pro/scheduled_messages/schema_validator.rb +1 -1
  167. data/lib/karafka/pro/scheduled_messages/setup/config.rb +2 -2
  168. data/lib/karafka/pro/scheduled_messages/state.rb +1 -1
  169. data/lib/karafka/pro/scheduled_messages/tracker.rb +2 -2
  170. data/lib/karafka/pro/scheduled_messages.rb +2 -2
  171. data/lib/karafka/pro/swarm/liveness_listener.rb +2 -2
  172. data/lib/karafka/process.rb +1 -1
  173. data/lib/karafka/processing/coordinator.rb +1 -1
  174. data/lib/karafka/processing/inline_insights/consumer.rb +4 -4
  175. data/lib/karafka/processing/inline_insights/tracker.rb +6 -6
  176. data/lib/karafka/processing/jobs/base.rb +6 -4
  177. data/lib/karafka/processing/schedulers/default.rb +4 -4
  178. data/lib/karafka/processing/strategies/base.rb +6 -6
  179. data/lib/karafka/processing/strategies/default.rb +13 -13
  180. data/lib/karafka/processing/strategies/dlq.rb +1 -1
  181. data/lib/karafka/processing/worker.rb +5 -5
  182. data/lib/karafka/railtie.rb +11 -11
  183. data/lib/karafka/routing/builder.rb +3 -3
  184. data/lib/karafka/routing/contracts/consumer_group.rb +6 -6
  185. data/lib/karafka/routing/contracts/routing.rb +2 -2
  186. data/lib/karafka/routing/contracts/topic.rb +4 -4
  187. data/lib/karafka/routing/features/active_job/contracts/topic.rb +3 -3
  188. data/lib/karafka/routing/features/base/expander.rb +4 -4
  189. data/lib/karafka/routing/features/base.rb +8 -8
  190. data/lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb +2 -2
  191. data/lib/karafka/routing/features/declaratives/contracts/topic.rb +2 -2
  192. data/lib/karafka/routing/features/deserializers/contracts/topic.rb +2 -2
  193. data/lib/karafka/routing/features/eofed/contracts/topic.rb +3 -3
  194. data/lib/karafka/routing/features/inline_insights/contracts/topic.rb +2 -2
  195. data/lib/karafka/routing/features/inline_insights.rb +7 -7
  196. data/lib/karafka/routing/features/manual_offset_management/contracts/topic.rb +2 -2
  197. data/lib/karafka/routing/subscription_group.rb +9 -9
  198. data/lib/karafka/runner.rb +3 -3
  199. data/lib/karafka/server.rb +5 -5
  200. data/lib/karafka/setup/attributes_map.rb +7 -7
  201. data/lib/karafka/setup/config.rb +11 -11
  202. data/lib/karafka/setup/contracts/config.rb +2 -2
  203. data/lib/karafka/setup/defaults_injector.rb +11 -11
  204. data/lib/karafka/swarm/manager.rb +6 -6
  205. data/lib/karafka/swarm/node.rb +7 -7
  206. data/lib/karafka/swarm/supervisor.rb +6 -6
  207. data/lib/karafka/swarm.rb +1 -1
  208. data/lib/karafka/time_trackers/pause.rb +1 -1
  209. data/lib/karafka/version.rb +1 -1
  210. data/lib/karafka.rb +36 -36
  211. metadata +6 -3
@@ -100,9 +100,9 @@ module Karafka
100
100
 
101
101
  swarm.node = self
102
102
  monitor.subscribe(liveness_listener)
103
- monitor.instrument('swarm.node.after_fork', caller: self)
103
+ monitor.instrument("swarm.node.after_fork", caller: self)
104
104
 
105
- Karafka::Process.tags.add(:execution_mode, 'mode:swarm')
105
+ Karafka::Process.tags.add(:execution_mode, "mode:swarm")
106
106
  Karafka::Process.tags.add(:swarm_nodeid, "node:#{@id}")
107
107
 
108
108
  Server.execution_mode.swarm!
@@ -118,7 +118,7 @@ module Karafka
118
118
  # Indicates that this node is doing well
119
119
  # @note Child API
120
120
  def healthy
121
- write('0')
121
+ write("0")
122
122
  end
123
123
 
124
124
  # Indicates, that this node has failed
@@ -127,7 +127,7 @@ module Karafka
127
127
  # have complex health-checking with reporting.
128
128
  # @note Child API
129
129
  # @note We convert this to string to normalize the API
130
- def unhealthy(reason_code = '1')
130
+ def unhealthy(reason_code = "1")
131
131
  write(reason_code.to_s)
132
132
  end
133
133
 
@@ -192,19 +192,19 @@ module Karafka
192
192
  # Sends sigterm to the node
193
193
  # @note Parent API
194
194
  def stop
195
- signal('TERM')
195
+ signal("TERM")
196
196
  end
197
197
 
198
198
  # Sends sigtstp to the node
199
199
  # @note Parent API
200
200
  def quiet
201
- signal('TSTP')
201
+ signal("TSTP")
202
202
  end
203
203
 
204
204
  # Terminates node
205
205
  # @note Parent API
206
206
  def terminate
207
- signal('KILL')
207
+ signal("KILL")
208
208
  end
209
209
 
210
210
  # Sends provided signal to the node
@@ -66,7 +66,7 @@ module Karafka
66
66
  process.on_sigquit { stop }
67
67
  process.on_sigterm { stop }
68
68
  process.on_sigtstp { quiet }
69
- process.on_sigttin { signal('TTIN') }
69
+ process.on_sigttin { signal("TTIN") }
70
70
  # Needed to be registered as we want to unlock on child changes
71
71
  process.on_sigchld { nil }
72
72
  process.on_any_active { unlock }
@@ -87,13 +87,13 @@ module Karafka
87
87
  # If anything went wrong during supervision, signal this and die
88
88
  # Supervisor is meant to be thin and not cause any issues. If you encounter this case
89
89
  # please report it as it should be considered critical
90
- rescue StandardError => e
90
+ rescue => e
91
91
  monitor.instrument(
92
- 'error.occurred',
92
+ "error.occurred",
93
93
  caller: self,
94
94
  error: e,
95
95
  manager: manager,
96
- type: 'swarm.supervisor.error'
96
+ type: "swarm.supervisor.error"
97
97
  )
98
98
 
99
99
  manager.terminate
@@ -148,11 +148,11 @@ module Karafka
148
148
  raise Errors::ForcefulShutdownError
149
149
  rescue Errors::ForcefulShutdownError => e
150
150
  monitor.instrument(
151
- 'error.occurred',
151
+ "error.occurred",
152
152
  caller: self,
153
153
  error: e,
154
154
  manager: manager,
155
- type: 'app.stopping.error'
155
+ type: "app.stopping.error"
156
156
  )
157
157
 
158
158
  # Run forceful kill
data/lib/karafka/swarm.rb CHANGED
@@ -14,7 +14,7 @@ module Karafka
14
14
 
15
15
  raise(
16
16
  Errors::UnsupportedOptionError,
17
- 'Swarm mode not supported on this platform'
17
+ "Swarm mode not supported on this platform"
18
18
  )
19
19
  end
20
20
 
@@ -115,7 +115,7 @@ module Karafka
115
115
 
116
116
  timeout = backoff_factor * @timeout
117
117
 
118
- @max_timeout && timeout > @max_timeout ? @max_timeout : timeout
118
+ (@max_timeout && timeout > @max_timeout) ? @max_timeout : timeout
119
119
  end
120
120
  end
121
121
  end
@@ -3,5 +3,5 @@
3
3
  # Main module namespace
4
4
  module Karafka
5
5
  # Current Karafka version
6
- VERSION = '2.5.5'
6
+ VERSION = "2.5.6"
7
7
  end
data/lib/karafka.rb CHANGED
@@ -1,21 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'karafka-core'
4
- require 'delegate'
5
- require 'English'
6
- require 'rdkafka'
7
- require 'waterdrop'
8
- require 'json'
9
- require 'forwardable'
10
- require 'fileutils'
11
- require 'openssl'
12
- require 'optparse'
13
- require 'socket'
14
- require 'date'
15
- require 'singleton'
16
- require 'digest'
17
- require 'zeitwerk'
18
- require 'logger'
3
+ require "karafka-core"
4
+ require "delegate"
5
+ require "English"
6
+ require "rdkafka"
7
+ require "waterdrop"
8
+ require "json"
9
+ require "forwardable"
10
+ require "fileutils"
11
+ require "openssl"
12
+ require "optparse"
13
+ require "socket"
14
+ require "date"
15
+ require "singleton"
16
+ require "digest"
17
+ require "zeitwerk"
18
+ require "logger"
19
19
 
20
20
  # Karafka framework main namespace
21
21
  module Karafka
@@ -50,7 +50,7 @@ module Karafka
50
50
 
51
51
  # @return [Pathname] root path of this gem
52
52
  def gem_root
53
- Pathname.new(File.expand_path('..', __dir__))
53
+ Pathname.new(File.expand_path("..", __dir__))
54
54
  end
55
55
 
56
56
  # @return [Pathname] Karafka app root path (user application path)
@@ -58,26 +58,26 @@ module Karafka
58
58
  return @root if @root
59
59
 
60
60
  # If user points to a different root explicitly, use it
61
- if ENV['KARAFKA_ROOT_DIR']
62
- @root = Pathname.new(ENV['KARAFKA_ROOT_DIR'])
61
+ if ENV["KARAFKA_ROOT_DIR"]
62
+ @root = Pathname.new(ENV["KARAFKA_ROOT_DIR"])
63
63
 
64
64
  return @root
65
65
  end
66
66
 
67
- if defined?(::Bundler)
67
+ @root = if defined?(::Bundler)
68
68
  # By default we infer the project root from bundler.
69
69
  # We cannot use the BUNDLE_GEMFILE env directly because it may be altered by things like
70
70
  # ruby-lsp. Instead we always fallback to the most outer Gemfile. In most of the cases, it
71
71
  # won't matter but in case of some automatic setup alterations like ruby-lsp, the location
72
72
  # from which the project starts may not match the original Gemfile.
73
- @root = Pathname.new(
73
+ Pathname.new(
74
74
  File.dirname(
75
75
  Bundler.with_unbundled_env { Bundler.default_gemfile }
76
76
  )
77
77
  )
78
78
  else
79
79
  # Fallback when Bundler is not available: use current directory
80
- @root = Pathname.new(Dir.pwd)
80
+ Pathname.new(Dir.pwd)
81
81
  end
82
82
 
83
83
  @root
@@ -85,7 +85,7 @@ module Karafka
85
85
 
86
86
  # @return [Pathname] path to Karafka gem root core
87
87
  def core_root
88
- Pathname.new(File.expand_path('karafka', __dir__))
88
+ Pathname.new(File.expand_path("karafka", __dir__))
89
89
  end
90
90
 
91
91
  # @return [Boolean] true if there is a valid pro token present
@@ -102,16 +102,16 @@ module Karafka
102
102
  def rails?
103
103
  return @rails if instance_variable_defined?(:@rails)
104
104
 
105
- @rails = Object.const_defined?('Rails::Railtie')
105
+ @rails = Object.const_defined?("Rails::Railtie")
106
106
 
107
107
  # If Rails exists we set it immediately based on its presence and return
108
108
  return @rails if @rails
109
109
 
110
110
  # If rails is not present and user wants us not to force-load it, we return
111
- return @rails if ENV['KARAFKA_REQUIRE_RAILS'] == 'false'
111
+ return @rails if ENV["KARAFKA_REQUIRE_RAILS"] == "false"
112
112
 
113
113
  # If we should try to require it, we try and if no error, it means its there
114
- require('rails')
114
+ require("rails")
115
115
 
116
116
  @rails = true
117
117
  rescue LoadError
@@ -128,10 +128,10 @@ module Karafka
128
128
  # KARAFKA_BOOT_FILE='/home/app_path/app.rb'
129
129
  # Karafka.boot_file #=> '/home/app_path/app.rb'
130
130
  def boot_file
131
- boot_file = Pathname.new(ENV['KARAFKA_BOOT_FILE'] || File.join(Karafka.root, 'karafka.rb'))
131
+ boot_file = Pathname.new(ENV["KARAFKA_BOOT_FILE"] || File.join(Karafka.root, "karafka.rb"))
132
132
 
133
133
  return boot_file if boot_file.absolute?
134
- return boot_file if boot_file.to_s == 'false'
134
+ return boot_file if boot_file.to_s == "false"
135
135
 
136
136
  Pathname.new(
137
137
  File.expand_path(
@@ -158,19 +158,19 @@ end
158
158
 
159
159
  loader = Zeitwerk::Loader.for_gem
160
160
  # Do not load Rails extensions by default, this will be handled by Railtie if they are needed
161
- loader.ignore(Karafka.gem_root.join('lib/active_job'))
161
+ loader.ignore(Karafka.gem_root.join("lib/active_job"))
162
162
  # Do not load CurrentAttributes components as they will be loaded if needed
163
163
  # @note We have to exclude both the .rb file as well as the whole directory so users can require
164
164
  # current attributes only when needed
165
- loader.ignore(Karafka.gem_root.join('lib/karafka/active_job/current_attributes'))
166
- loader.ignore(Karafka.gem_root.join('lib/karafka/active_job/current_attributes.rb'))
165
+ loader.ignore(Karafka.gem_root.join("lib/karafka/active_job/current_attributes"))
166
+ loader.ignore(Karafka.gem_root.join("lib/karafka/active_job/current_attributes.rb"))
167
167
  # Do not load Railtie. It will load if after everything is ready, so we don't have to load any
168
168
  # Karafka components when we require this railtie. Railtie needs to be loaded last.
169
- loader.ignore(Karafka.gem_root.join('lib/karafka/railtie'))
169
+ loader.ignore(Karafka.gem_root.join("lib/karafka/railtie"))
170
170
  # Do not load pro components as they will be loaded if needed and allowed
171
- loader.ignore(Karafka.core_root.join('pro/'))
171
+ loader.ignore(Karafka.core_root.join("pro/"))
172
172
  # Do not load vendors instrumentation components. Those need to be required manually if needed
173
- loader.ignore(Karafka.core_root.join('instrumentation/vendors'))
173
+ loader.ignore(Karafka.core_root.join("instrumentation/vendors"))
174
174
  loader.setup
175
175
  loader.eager_load
176
176
 
@@ -182,12 +182,12 @@ Karafka::Routing::Features::Base.load_all
182
182
  # to make pro components available in case anyone wants to use them as a base to their own
183
183
  # custom components. Otherwise inheritance would not work.
184
184
  Karafka::Licenser.detect do
185
- require 'karafka/pro/loader'
185
+ require "karafka/pro/loader"
186
186
 
187
187
  Karafka::Pro::Loader.require_all
188
188
  end
189
189
 
190
190
  # Load railtie after everything else is ready so we know we can rely on it.
191
- require 'karafka/railtie'
191
+ require "karafka/railtie"
192
192
 
193
193
  Karafka::Constraints.verify!
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.5
4
+ version: 2.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -35,14 +35,14 @@ dependencies:
35
35
  requirements:
36
36
  - - ">="
37
37
  - !ruby/object:Gem::Version
38
- version: 0.23.1
38
+ version: 0.24.0
39
39
  type: :runtime
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 0.23.1
45
+ version: 0.24.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: waterdrop
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -95,6 +95,7 @@ files:
95
95
  - LICENSE-LGPL
96
96
  - README.md
97
97
  - bin/karafka
98
+ - certs/expired.txt
98
99
  - certs/karafka-pro.pem
99
100
  - config/locales/errors.yml
100
101
  - config/locales/pro_errors.yml
@@ -216,6 +217,8 @@ files:
216
217
  - lib/karafka/pro/cli/parallel_segments/base.rb
217
218
  - lib/karafka/pro/cli/parallel_segments/collapse.rb
218
219
  - lib/karafka/pro/cli/parallel_segments/distribute.rb
220
+ - lib/karafka/pro/cli/topics.rb
221
+ - lib/karafka/pro/cli/topics/health.rb
219
222
  - lib/karafka/pro/connection/manager.rb
220
223
  - lib/karafka/pro/connection/multiplexing/listener.rb
221
224
  - lib/karafka/pro/contracts/base.rb