karafka 2.5.4 → 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 (360) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/LICENSE-COMM +8 -2
  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 +128 -81
  13. data/lib/karafka/admin/configs/resource.rb +1 -1
  14. data/lib/karafka/admin/configs.rb +84 -70
  15. data/lib/karafka/admin/consumer_groups.rb +377 -330
  16. data/lib/karafka/admin/contracts/replication.rb +2 -2
  17. data/lib/karafka/admin/replication.rb +304 -280
  18. data/lib/karafka/admin/topics.rb +232 -186
  19. data/lib/karafka/admin.rb +276 -117
  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/consumer.rb +19 -2
  71. data/lib/karafka/pro/active_job/dispatcher.rb +19 -2
  72. data/lib/karafka/pro/active_job/job_options_contract.rb +21 -4
  73. data/lib/karafka/pro/base_consumer.rb +19 -2
  74. data/lib/karafka/pro/cleaner/errors.rb +19 -2
  75. data/lib/karafka/pro/cleaner/messages/message.rb +19 -2
  76. data/lib/karafka/pro/cleaner/messages/messages.rb +29 -2
  77. data/lib/karafka/pro/cleaner/messages/metadata.rb +19 -2
  78. data/lib/karafka/pro/cleaner.rb +19 -2
  79. data/lib/karafka/pro/cli/contracts/server.rb +31 -14
  80. data/lib/karafka/pro/cli/parallel_segments/base.rb +23 -6
  81. data/lib/karafka/pro/cli/parallel_segments/collapse.rb +24 -7
  82. data/lib/karafka/pro/cli/parallel_segments/distribute.rb +22 -5
  83. data/lib/karafka/pro/cli/parallel_segments.rb +26 -9
  84. data/lib/karafka/pro/cli/topics/health.rb +162 -0
  85. data/lib/karafka/pro/cli/topics.rb +52 -0
  86. data/lib/karafka/pro/connection/manager.rb +33 -16
  87. data/lib/karafka/pro/connection/multiplexing/listener.rb +19 -2
  88. data/lib/karafka/pro/contracts/base.rb +19 -2
  89. data/lib/karafka/pro/encryption/cipher.rb +19 -2
  90. data/lib/karafka/pro/encryption/contracts/config.rb +21 -4
  91. data/lib/karafka/pro/encryption/errors.rb +19 -2
  92. data/lib/karafka/pro/encryption/messages/middleware.rb +21 -4
  93. data/lib/karafka/pro/encryption/messages/parser.rb +21 -4
  94. data/lib/karafka/pro/encryption/setup/config.rb +21 -4
  95. data/lib/karafka/pro/encryption.rb +19 -2
  96. data/lib/karafka/pro/instrumentation/performance_tracker.rb +19 -2
  97. data/lib/karafka/pro/iterator/expander.rb +19 -2
  98. data/lib/karafka/pro/iterator/tpl_builder.rb +21 -4
  99. data/lib/karafka/pro/iterator.rb +20 -3
  100. data/lib/karafka/pro/loader.rb +21 -3
  101. data/lib/karafka/pro/processing/adaptive_iterator/consumer.rb +20 -3
  102. data/lib/karafka/pro/processing/adaptive_iterator/tracker.rb +19 -2
  103. data/lib/karafka/pro/processing/collapser.rb +19 -2
  104. data/lib/karafka/pro/processing/coordinator.rb +19 -2
  105. data/lib/karafka/pro/processing/coordinators/errors_tracker.rb +19 -2
  106. data/lib/karafka/pro/processing/coordinators/filters_applier.rb +19 -2
  107. data/lib/karafka/pro/processing/coordinators/virtual_offset_manager.rb +26 -9
  108. data/lib/karafka/pro/processing/executor.rb +19 -2
  109. data/lib/karafka/pro/processing/expansions_selector.rb +19 -2
  110. data/lib/karafka/pro/processing/filters/base.rb +20 -3
  111. data/lib/karafka/pro/processing/filters/delayer.rb +21 -4
  112. data/lib/karafka/pro/processing/filters/expirer.rb +19 -2
  113. data/lib/karafka/pro/processing/filters/inline_insights_delayer.rb +20 -3
  114. data/lib/karafka/pro/processing/filters/throttler.rb +19 -2
  115. data/lib/karafka/pro/processing/filters/virtual_limiter.rb +19 -2
  116. data/lib/karafka/pro/processing/jobs/consume_non_blocking.rb +19 -2
  117. data/lib/karafka/pro/processing/jobs/eofed_non_blocking.rb +19 -2
  118. data/lib/karafka/pro/processing/jobs/periodic.rb +19 -2
  119. data/lib/karafka/pro/processing/jobs/periodic_non_blocking.rb +19 -2
  120. data/lib/karafka/pro/processing/jobs/revoked_non_blocking.rb +19 -2
  121. data/lib/karafka/pro/processing/jobs_builder.rb +19 -2
  122. data/lib/karafka/pro/processing/jobs_queue.rb +19 -2
  123. data/lib/karafka/pro/processing/offset_metadata/consumer.rb +20 -3
  124. data/lib/karafka/pro/processing/offset_metadata/fetcher.rb +19 -2
  125. data/lib/karafka/pro/processing/offset_metadata/listener.rb +19 -2
  126. data/lib/karafka/pro/processing/parallel_segments/filters/base.rb +25 -8
  127. data/lib/karafka/pro/processing/parallel_segments/filters/default.rb +19 -2
  128. data/lib/karafka/pro/processing/parallel_segments/filters/mom.rb +19 -2
  129. data/lib/karafka/pro/processing/partitioner.rb +22 -5
  130. data/lib/karafka/pro/processing/periodic_job/consumer.rb +25 -7
  131. data/lib/karafka/pro/processing/piping/consumer.rb +26 -9
  132. data/lib/karafka/pro/processing/schedulers/base.rb +24 -7
  133. data/lib/karafka/pro/processing/schedulers/default.rb +24 -7
  134. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom.rb +25 -5
  135. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom_vp.rb +25 -5
  136. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom.rb +19 -2
  137. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom_vp.rb +19 -2
  138. data/lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom.rb +19 -2
  139. data/lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom_vp.rb +19 -2
  140. data/lib/karafka/pro/processing/strategies/aj/dlq_mom.rb +19 -2
  141. data/lib/karafka/pro/processing/strategies/aj/dlq_mom_vp.rb +19 -2
  142. data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom.rb +19 -2
  143. data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom_vp.rb +25 -5
  144. data/lib/karafka/pro/processing/strategies/aj/ftr_mom.rb +19 -2
  145. data/lib/karafka/pro/processing/strategies/aj/ftr_mom_vp.rb +19 -2
  146. data/lib/karafka/pro/processing/strategies/aj/lrj_mom.rb +19 -2
  147. data/lib/karafka/pro/processing/strategies/aj/lrj_mom_vp.rb +21 -4
  148. data/lib/karafka/pro/processing/strategies/aj/mom.rb +19 -2
  149. data/lib/karafka/pro/processing/strategies/aj/mom_vp.rb +19 -2
  150. data/lib/karafka/pro/processing/strategies/base.rb +19 -2
  151. data/lib/karafka/pro/processing/strategies/default.rb +41 -24
  152. data/lib/karafka/pro/processing/strategies/dlq/default.rb +26 -9
  153. data/lib/karafka/pro/processing/strategies/dlq/ftr.rb +19 -2
  154. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj.rb +25 -5
  155. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom.rb +25 -5
  156. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom_vp.rb +19 -2
  157. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_vp.rb +19 -2
  158. data/lib/karafka/pro/processing/strategies/dlq/ftr_mom.rb +19 -2
  159. data/lib/karafka/pro/processing/strategies/dlq/ftr_mom_vp.rb +19 -2
  160. data/lib/karafka/pro/processing/strategies/dlq/ftr_vp.rb +19 -2
  161. data/lib/karafka/pro/processing/strategies/dlq/lrj.rb +19 -2
  162. data/lib/karafka/pro/processing/strategies/dlq/lrj_mom.rb +19 -2
  163. data/lib/karafka/pro/processing/strategies/dlq/lrj_mom_vp.rb +19 -2
  164. data/lib/karafka/pro/processing/strategies/dlq/lrj_vp.rb +19 -2
  165. data/lib/karafka/pro/processing/strategies/dlq/mom.rb +19 -2
  166. data/lib/karafka/pro/processing/strategies/dlq/mom_vp.rb +19 -2
  167. data/lib/karafka/pro/processing/strategies/dlq/vp.rb +19 -2
  168. data/lib/karafka/pro/processing/strategies/ftr/default.rb +21 -4
  169. data/lib/karafka/pro/processing/strategies/ftr/vp.rb +19 -2
  170. data/lib/karafka/pro/processing/strategies/lrj/default.rb +21 -4
  171. data/lib/karafka/pro/processing/strategies/lrj/ftr.rb +25 -5
  172. data/lib/karafka/pro/processing/strategies/lrj/ftr_mom.rb +25 -5
  173. data/lib/karafka/pro/processing/strategies/lrj/ftr_mom_vp.rb +19 -2
  174. data/lib/karafka/pro/processing/strategies/lrj/ftr_vp.rb +19 -2
  175. data/lib/karafka/pro/processing/strategies/lrj/mom.rb +21 -4
  176. data/lib/karafka/pro/processing/strategies/lrj/mom_vp.rb +19 -2
  177. data/lib/karafka/pro/processing/strategies/lrj/vp.rb +19 -2
  178. data/lib/karafka/pro/processing/strategies/mom/default.rb +19 -2
  179. data/lib/karafka/pro/processing/strategies/mom/ftr.rb +19 -2
  180. data/lib/karafka/pro/processing/strategies/mom/ftr_vp.rb +19 -2
  181. data/lib/karafka/pro/processing/strategies/mom/vp.rb +19 -2
  182. data/lib/karafka/pro/processing/strategies/vp/default.rb +19 -2
  183. data/lib/karafka/pro/processing/strategies.rb +19 -2
  184. data/lib/karafka/pro/processing/strategy_selector.rb +19 -2
  185. data/lib/karafka/pro/processing/subscription_groups_coordinator.rb +19 -2
  186. data/lib/karafka/pro/processing/virtual_partitions/distributors/balanced.rb +19 -2
  187. data/lib/karafka/pro/processing/virtual_partitions/distributors/base.rb +19 -2
  188. data/lib/karafka/pro/processing/virtual_partitions/distributors/consistent.rb +19 -2
  189. data/lib/karafka/pro/recurring_tasks/consumer.rb +21 -4
  190. data/lib/karafka/pro/recurring_tasks/contracts/config.rb +21 -4
  191. data/lib/karafka/pro/recurring_tasks/contracts/task.rb +21 -4
  192. data/lib/karafka/pro/recurring_tasks/deserializer.rb +19 -2
  193. data/lib/karafka/pro/recurring_tasks/dispatcher.rb +21 -4
  194. data/lib/karafka/pro/recurring_tasks/errors.rb +19 -2
  195. data/lib/karafka/pro/recurring_tasks/executor.rb +19 -2
  196. data/lib/karafka/pro/recurring_tasks/listener.rb +20 -3
  197. data/lib/karafka/pro/recurring_tasks/matcher.rb +21 -4
  198. data/lib/karafka/pro/recurring_tasks/schedule.rb +19 -2
  199. data/lib/karafka/pro/recurring_tasks/serializer.rb +24 -7
  200. data/lib/karafka/pro/recurring_tasks/setup/config.rb +22 -5
  201. data/lib/karafka/pro/recurring_tasks/task.rb +23 -6
  202. data/lib/karafka/pro/recurring_tasks.rb +23 -6
  203. data/lib/karafka/pro/routing/features/active_job/builder.rb +19 -2
  204. data/lib/karafka/pro/routing/features/active_job.rb +19 -2
  205. data/lib/karafka/pro/routing/features/adaptive_iterator/config.rb +19 -2
  206. data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +21 -4
  207. data/lib/karafka/pro/routing/features/adaptive_iterator/topic.rb +19 -2
  208. data/lib/karafka/pro/routing/features/adaptive_iterator.rb +19 -2
  209. data/lib/karafka/pro/routing/features/base.rb +19 -2
  210. data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +21 -4
  211. data/lib/karafka/pro/routing/features/dead_letter_queue/topic.rb +20 -3
  212. data/lib/karafka/pro/routing/features/dead_letter_queue.rb +19 -2
  213. data/lib/karafka/pro/routing/features/delaying/config.rb +19 -2
  214. data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +21 -4
  215. data/lib/karafka/pro/routing/features/delaying/topic.rb +19 -2
  216. data/lib/karafka/pro/routing/features/delaying.rb +19 -2
  217. data/lib/karafka/pro/routing/features/direct_assignments/config.rb +19 -2
  218. data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +21 -4
  219. data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +21 -4
  220. data/lib/karafka/pro/routing/features/direct_assignments/subscription_group.rb +19 -2
  221. data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +20 -3
  222. data/lib/karafka/pro/routing/features/direct_assignments.rb +19 -2
  223. data/lib/karafka/pro/routing/features/expiring/config.rb +19 -2
  224. data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +21 -4
  225. data/lib/karafka/pro/routing/features/expiring/topic.rb +19 -2
  226. data/lib/karafka/pro/routing/features/expiring.rb +19 -2
  227. data/lib/karafka/pro/routing/features/filtering/config.rb +19 -2
  228. data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +21 -4
  229. data/lib/karafka/pro/routing/features/filtering/topic.rb +19 -2
  230. data/lib/karafka/pro/routing/features/filtering.rb +19 -2
  231. data/lib/karafka/pro/routing/features/inline_insights/config.rb +19 -2
  232. data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +21 -4
  233. data/lib/karafka/pro/routing/features/inline_insights/topic.rb +19 -2
  234. data/lib/karafka/pro/routing/features/inline_insights.rb +19 -2
  235. data/lib/karafka/pro/routing/features/long_running_job/config.rb +19 -2
  236. data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +21 -4
  237. data/lib/karafka/pro/routing/features/long_running_job/topic.rb +20 -3
  238. data/lib/karafka/pro/routing/features/long_running_job.rb +19 -2
  239. data/lib/karafka/pro/routing/features/multiplexing/config.rb +19 -2
  240. data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +21 -4
  241. data/lib/karafka/pro/routing/features/multiplexing/patches/contracts/consumer_group.rb +19 -2
  242. data/lib/karafka/pro/routing/features/multiplexing/proxy.rb +19 -2
  243. data/lib/karafka/pro/routing/features/multiplexing/subscription_group.rb +19 -2
  244. data/lib/karafka/pro/routing/features/multiplexing/subscription_groups_builder.rb +19 -2
  245. data/lib/karafka/pro/routing/features/multiplexing.rb +24 -7
  246. data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +20 -3
  247. data/lib/karafka/pro/routing/features/non_blocking_job.rb +19 -2
  248. data/lib/karafka/pro/routing/features/offset_metadata/config.rb +19 -2
  249. data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +21 -4
  250. data/lib/karafka/pro/routing/features/offset_metadata/topic.rb +20 -3
  251. data/lib/karafka/pro/routing/features/offset_metadata.rb +20 -3
  252. data/lib/karafka/pro/routing/features/parallel_segments/builder.rb +19 -2
  253. data/lib/karafka/pro/routing/features/parallel_segments/config.rb +19 -2
  254. data/lib/karafka/pro/routing/features/parallel_segments/consumer_group.rb +24 -7
  255. data/lib/karafka/pro/routing/features/parallel_segments/contracts/consumer_group.rb +21 -4
  256. data/lib/karafka/pro/routing/features/parallel_segments/topic.rb +19 -2
  257. data/lib/karafka/pro/routing/features/parallel_segments.rb +19 -2
  258. data/lib/karafka/pro/routing/features/patterns/builder.rb +19 -2
  259. data/lib/karafka/pro/routing/features/patterns/config.rb +19 -2
  260. data/lib/karafka/pro/routing/features/patterns/consumer_group.rb +19 -2
  261. data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +21 -4
  262. data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +22 -5
  263. data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +21 -4
  264. data/lib/karafka/pro/routing/features/patterns/detector.rb +19 -2
  265. data/lib/karafka/pro/routing/features/patterns/pattern.rb +19 -2
  266. data/lib/karafka/pro/routing/features/patterns/patterns.rb +19 -2
  267. data/lib/karafka/pro/routing/features/patterns/topic.rb +20 -3
  268. data/lib/karafka/pro/routing/features/patterns/topics.rb +19 -2
  269. data/lib/karafka/pro/routing/features/patterns.rb +19 -2
  270. data/lib/karafka/pro/routing/features/pausing/config.rb +19 -2
  271. data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +21 -4
  272. data/lib/karafka/pro/routing/features/pausing/topic.rb +19 -2
  273. data/lib/karafka/pro/routing/features/pausing.rb +19 -2
  274. data/lib/karafka/pro/routing/features/periodic_job/config.rb +19 -2
  275. data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +21 -4
  276. data/lib/karafka/pro/routing/features/periodic_job/topic.rb +20 -3
  277. data/lib/karafka/pro/routing/features/periodic_job.rb +19 -2
  278. data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +26 -9
  279. data/lib/karafka/pro/routing/features/recurring_tasks/config.rb +19 -2
  280. data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +21 -4
  281. data/lib/karafka/pro/routing/features/recurring_tasks/proxy.rb +19 -2
  282. data/lib/karafka/pro/routing/features/recurring_tasks/topic.rb +19 -2
  283. data/lib/karafka/pro/routing/features/recurring_tasks.rb +19 -2
  284. data/lib/karafka/pro/routing/features/scheduled_messages/builder.rb +32 -15
  285. data/lib/karafka/pro/routing/features/scheduled_messages/config.rb +19 -2
  286. data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +21 -4
  287. data/lib/karafka/pro/routing/features/scheduled_messages/proxy.rb +19 -2
  288. data/lib/karafka/pro/routing/features/scheduled_messages/topic.rb +19 -2
  289. data/lib/karafka/pro/routing/features/scheduled_messages.rb +19 -2
  290. data/lib/karafka/pro/routing/features/swarm/config.rb +19 -2
  291. data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +21 -4
  292. data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +21 -4
  293. data/lib/karafka/pro/routing/features/swarm/topic.rb +19 -2
  294. data/lib/karafka/pro/routing/features/swarm.rb +20 -3
  295. data/lib/karafka/pro/routing/features/throttling/config.rb +19 -2
  296. data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +21 -4
  297. data/lib/karafka/pro/routing/features/throttling/topic.rb +19 -2
  298. data/lib/karafka/pro/routing/features/throttling.rb +19 -2
  299. data/lib/karafka/pro/routing/features/virtual_partitions/config.rb +26 -9
  300. data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +21 -4
  301. data/lib/karafka/pro/routing/features/virtual_partitions/topic.rb +19 -2
  302. data/lib/karafka/pro/routing/features/virtual_partitions.rb +19 -2
  303. data/lib/karafka/pro/scheduled_messages/consumer.rb +23 -6
  304. data/lib/karafka/pro/scheduled_messages/contracts/config.rb +21 -4
  305. data/lib/karafka/pro/scheduled_messages/contracts/message.rb +29 -12
  306. data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +21 -4
  307. data/lib/karafka/pro/scheduled_messages/day.rb +19 -2
  308. data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +23 -6
  309. data/lib/karafka/pro/scheduled_messages/deserializers/payload.rb +19 -2
  310. data/lib/karafka/pro/scheduled_messages/dispatcher.rb +24 -7
  311. data/lib/karafka/pro/scheduled_messages/errors.rb +19 -2
  312. data/lib/karafka/pro/scheduled_messages/max_epoch.rb +19 -2
  313. data/lib/karafka/pro/scheduled_messages/proxy.rb +27 -10
  314. data/lib/karafka/pro/scheduled_messages/schema_validator.rb +20 -3
  315. data/lib/karafka/pro/scheduled_messages/serializer.rb +19 -2
  316. data/lib/karafka/pro/scheduled_messages/setup/config.rb +21 -4
  317. data/lib/karafka/pro/scheduled_messages/state.rb +20 -3
  318. data/lib/karafka/pro/scheduled_messages/tracker.rb +21 -4
  319. data/lib/karafka/pro/scheduled_messages.rb +21 -4
  320. data/lib/karafka/pro/swarm/liveness_listener.rb +21 -4
  321. data/lib/karafka/process.rb +1 -1
  322. data/lib/karafka/processing/coordinator.rb +1 -1
  323. data/lib/karafka/processing/inline_insights/consumer.rb +4 -4
  324. data/lib/karafka/processing/inline_insights/tracker.rb +6 -6
  325. data/lib/karafka/processing/jobs/base.rb +6 -4
  326. data/lib/karafka/processing/schedulers/default.rb +4 -4
  327. data/lib/karafka/processing/strategies/base.rb +6 -6
  328. data/lib/karafka/processing/strategies/default.rb +13 -13
  329. data/lib/karafka/processing/strategies/dlq.rb +1 -1
  330. data/lib/karafka/processing/worker.rb +5 -5
  331. data/lib/karafka/railtie.rb +11 -11
  332. data/lib/karafka/routing/builder.rb +3 -3
  333. data/lib/karafka/routing/contracts/consumer_group.rb +6 -6
  334. data/lib/karafka/routing/contracts/routing.rb +2 -2
  335. data/lib/karafka/routing/contracts/topic.rb +4 -4
  336. data/lib/karafka/routing/features/active_job/contracts/topic.rb +3 -3
  337. data/lib/karafka/routing/features/base/expander.rb +4 -4
  338. data/lib/karafka/routing/features/base.rb +8 -8
  339. data/lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb +2 -2
  340. data/lib/karafka/routing/features/declaratives/contracts/topic.rb +2 -2
  341. data/lib/karafka/routing/features/deserializers/contracts/topic.rb +2 -2
  342. data/lib/karafka/routing/features/eofed/contracts/topic.rb +3 -3
  343. data/lib/karafka/routing/features/inline_insights/contracts/topic.rb +2 -2
  344. data/lib/karafka/routing/features/inline_insights.rb +7 -7
  345. data/lib/karafka/routing/features/manual_offset_management/contracts/topic.rb +2 -2
  346. data/lib/karafka/routing/subscription_group.rb +9 -9
  347. data/lib/karafka/runner.rb +3 -3
  348. data/lib/karafka/server.rb +5 -5
  349. data/lib/karafka/setup/attributes_map.rb +7 -7
  350. data/lib/karafka/setup/config.rb +11 -11
  351. data/lib/karafka/setup/contracts/config.rb +2 -2
  352. data/lib/karafka/setup/defaults_injector.rb +11 -11
  353. data/lib/karafka/swarm/manager.rb +6 -6
  354. data/lib/karafka/swarm/node.rb +7 -7
  355. data/lib/karafka/swarm/supervisor.rb +6 -6
  356. data/lib/karafka/swarm.rb +1 -1
  357. data/lib/karafka/time_trackers/pause.rb +1 -1
  358. data/lib/karafka/version.rb +1 -1
  359. data/lib/karafka.rb +36 -36
  360. metadata +7 -4
@@ -334,7 +334,7 @@ module Karafka
334
334
  ].freeze
335
335
 
336
336
  # Location of the file with rdkafka settings list
337
- SOURCE = <<~SOURCE.delete("\n").gsub(/\s+/, '/')
337
+ SOURCE = <<~SOURCE.delete("\n").gsub(/\s+/, "/")
338
338
  https://raw.githubusercontent.com
339
339
  confluentinc/librdkafka
340
340
  v#{Rdkafka::LIBRDKAFKA_VERSION}
@@ -365,21 +365,21 @@ module Karafka
365
365
  # options list in case it would change
366
366
  def generate
367
367
  # Not used anywhere else, hence required here
368
- require 'open-uri'
368
+ require "open-uri"
369
369
 
370
370
  attributes = { consumer: Set.new, producer: Set.new }
371
371
 
372
372
  URI.parse(SOURCE).open.readlines.each do |line|
373
- next unless line.include?('|')
373
+ next unless line.include?("|")
374
374
 
375
- attribute, attribute_type = line.split('|').map(&:strip)
375
+ attribute, attribute_type = line.split("|").map(&:strip)
376
376
 
377
377
  case attribute_type
378
- when 'C'
378
+ when "C"
379
379
  attributes[:consumer] << attribute
380
- when 'P'
380
+ when "P"
381
381
  attributes[:producer] << attribute
382
- when '*'
382
+ when "*"
383
383
  attributes[:consumer] << attribute
384
384
  attributes[:producer] << attribute
385
385
  else
@@ -26,12 +26,12 @@ module Karafka
26
26
  # terms and conditions
27
27
  setting :token, default: false
28
28
  # option entity [String] for whom we did issue the license
29
- setting :entity, default: ''
29
+ setting :entity, default: ""
30
30
  end
31
31
 
32
32
  # option client_id [String] kafka client_id - used to uniquely identify given client instance
33
33
  # Used only for logging.
34
- setting :client_id, default: 'karafka'
34
+ setting :client_id, default: "karafka"
35
35
  # option logger [Instance] logger that we want to use
36
36
  setting :logger, default: Karafka::Instrumentation::Logger.new
37
37
  # option monitor [Instance] monitor that we will to use (defaults to Karafka::Monitor)
@@ -41,7 +41,7 @@ module Karafka
41
41
  setting :consumer_persistence, default: true
42
42
  # option [String] should we start with the earliest possible offset or latest
43
43
  # This will set the `auto.offset.reset` value unless present in the kafka scope
44
- setting :initial_offset, default: 'earliest'
44
+ setting :initial_offset, default: "earliest"
45
45
  # options max_messages [Integer] how many messages do we want to fetch from Kafka in one go
46
46
  setting :max_messages, default: 100
47
47
  # option [Integer] number of milliseconds we can wait while fetching data
@@ -71,7 +71,7 @@ module Karafka
71
71
  # and/or we work with existing systems where we cannot change topics names.
72
72
  setting :strict_topics_namespacing, default: true
73
73
  # option [String] default consumer group name for implicit routing
74
- setting :group_id, default: 'app'
74
+ setting :group_id, default: "app"
75
75
  # option [Boolean] when set to true, it will validate as part of the routing validation, that
76
76
  # all topics and DLQ topics (even not active) have the declarative topics definitions.
77
77
  # Really useful when you want to ensure that all topics in routing are managed via
@@ -115,22 +115,22 @@ module Karafka
115
115
  # option [Hash] extra changes to the default root kafka settings
116
116
  setting :kafka, default: {
117
117
  # We want to know when there is no more data not to end up with an endless loop
118
- 'enable.partition.eof': true,
118
+ "enable.partition.eof": true,
119
119
  # Do not publish statistics from admin as they are not relevant
120
- 'statistics.interval.ms': 0,
120
+ "statistics.interval.ms": 0,
121
121
  # Fetch at most 5 MBs when using admin
122
- 'fetch.message.max.bytes': 5 * 1_048_576,
122
+ "fetch.message.max.bytes": 5 * 1_048_576,
123
123
  # Do not commit offset automatically, this prevents offset tracking for operations
124
124
  # involving a consumer instance
125
- 'enable.auto.commit': false,
125
+ "enable.auto.commit": false,
126
126
  # Make sure that topic metadata lookups do not create topics accidentally
127
- 'allow.auto.create.topics': false,
127
+ "allow.auto.create.topics": false,
128
128
  # Do not store offsets automatically in admin in any way
129
- 'enable.auto.offset.store': false
129
+ "enable.auto.offset.store": false
130
130
  }
131
131
 
132
132
  # option [String] default name for the admin consumer group.
133
- setting :group_id, default: 'karafka_admin'
133
+ setting :group_id, default: "karafka_admin"
134
134
 
135
135
  # option max_wait_time [Integer] We wait only for this amount of time before raising error
136
136
  # as we intercept this error and retry after checking that the operation was finished or
@@ -13,8 +13,8 @@ module Karafka
13
13
  class Config < Karafka::Contracts::Base
14
14
  configure do |config|
15
15
  config.error_messages = YAML.safe_load_file(
16
- File.join(Karafka.gem_root, 'config', 'locales', 'errors.yml')
17
- ).fetch('en').fetch('validations').fetch('setup').fetch('config')
16
+ File.join(Karafka.gem_root, "config", "locales", "errors.yml")
17
+ ).fetch("en").fetch("validations").fetch("setup").fetch("config")
18
18
  end
19
19
 
20
20
  # Topics regexp constant reference for easier usage
@@ -10,18 +10,18 @@ module Karafka
10
10
  CONSUMER_KAFKA_DEFAULTS = {
11
11
  # We emit the statistics by default, so all the instrumentation and web-ui work out of
12
12
  # the box, without requiring users to take any extra actions aside from enabling.
13
- 'statistics.interval.ms': 5_000,
14
- 'client.software.name': 'karafka',
13
+ "statistics.interval.ms": 5_000,
14
+ "client.software.name": "karafka",
15
15
  # Same as librdkafka default, we inject it nonetheless to have it always available as
16
16
  # some features may use this value for computation and it is better to ensure, we do
17
17
  # always have it
18
- 'max.poll.interval.ms': 300_000,
19
- 'socket.nagle.disable': true,
20
- 'client.software.version': [
18
+ "max.poll.interval.ms": 300_000,
19
+ "socket.nagle.disable": true,
20
+ "client.software.version": [
21
21
  "v#{Karafka::VERSION}",
22
22
  "rdkafka-ruby-v#{Rdkafka::VERSION}",
23
23
  "librdkafka-v#{Rdkafka::LIBRDKAFKA_VERSION}"
24
- ].join('-')
24
+ ].join("-")
25
25
  }.freeze
26
26
 
27
27
  # Contains settings that should not be used in production but make life easier in dev
@@ -29,12 +29,12 @@ module Karafka
29
29
  # Will create non-existing topics automatically.
30
30
  # Note that the broker needs to be configured with `auto.create.topics.enable=true`
31
31
  # While it is not recommended in prod, it simplifies work in dev
32
- 'allow.auto.create.topics': 'true',
32
+ "allow.auto.create.topics": "true",
33
33
  # We refresh the cluster state often as newly created topics in dev may not be detected
34
34
  # fast enough. Fast enough means within reasonable time to provide decent user experience
35
35
  # While it's only a one time thing for new topics, it can still be irritating to have to
36
36
  # restart the process.
37
- 'topic.metadata.refresh.interval.ms': 5_000
37
+ "topic.metadata.refresh.interval.ms": 5_000
38
38
  }.freeze
39
39
 
40
40
  # Contains settings that should not be used in production but make life easier in dev
@@ -42,9 +42,9 @@ module Karafka
42
42
  # they have to set this by themselves.
43
43
  PRODUCER_KAFKA_DEV_DEFAULTS = {
44
44
  # For all of those same reasoning as for the consumer
45
- 'allow.auto.create.topics': 'true',
46
- 'topic.metadata.refresh.interval.ms': 5_000,
47
- 'socket.nagle.disable': true
45
+ "allow.auto.create.topics": "true",
46
+ "topic.metadata.refresh.interval.ms": 5_000,
47
+ "socket.nagle.disable": true
48
48
  }.freeze
49
49
 
50
50
  private_constant(
@@ -77,7 +77,7 @@ module Karafka
77
77
 
78
78
  # Checks on nodes if they are ok one after another
79
79
  def control
80
- monitor.instrument('swarm.manager.control', caller: self) do
80
+ monitor.instrument("swarm.manager.control", caller: self) do
81
81
  @nodes.each do |node|
82
82
  statuses = @statuses[node]
83
83
 
@@ -107,7 +107,7 @@ module Karafka
107
107
  # Do not run any other checks on this node if it is during stopping but still has time
108
108
  return true unless over?(statuses[:stop], shutdown_timeout)
109
109
 
110
- monitor.instrument('swarm.manager.terminating', caller: self, node: node) do
110
+ monitor.instrument("swarm.manager.terminating", caller: self, node: node) do
111
111
  node.terminate
112
112
  statuses[:terminate] = monotonic_now
113
113
  end
@@ -135,7 +135,7 @@ module Karafka
135
135
  else
136
136
  # A single invalid report will cause it to stop. We do not support intermediate failures
137
137
  # that would recover. Such states should be implemented in the listener.
138
- monitor.instrument('swarm.manager.stopping', caller: self, node: node, status: status) do
138
+ monitor.instrument("swarm.manager.stopping", caller: self, node: node, status: status) do
139
139
  node.stop
140
140
  statuses[:stop] = monotonic_now
141
141
  end
@@ -157,7 +157,7 @@ module Karafka
157
157
 
158
158
  # Start the stopping procedure if the node stopped reporting frequently enough
159
159
  monitor.instrument(
160
- 'swarm.manager.stopping',
160
+ "swarm.manager.stopping",
161
161
  caller: self,
162
162
  node: node,
163
163
  status: NOT_RESPONDING_SHUTDOWN_STATUS
@@ -210,9 +210,9 @@ module Karafka
210
210
  statuses.clear
211
211
  statuses[:control] = monotonic_now
212
212
 
213
- monitor.instrument('swarm.manager.before_fork', instr_args)
213
+ monitor.instrument("swarm.manager.before_fork", instr_args)
214
214
  node.start
215
- monitor.instrument('swarm.manager.after_fork', instr_args)
215
+ monitor.instrument("swarm.manager.after_fork", instr_args)
216
216
 
217
217
  node
218
218
  end
@@ -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.4'
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.4
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
@@ -573,7 +576,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
573
576
  - !ruby/object:Gem::Version
574
577
  version: '0'
575
578
  requirements: []
576
- rubygems_version: 3.6.9
579
+ rubygems_version: 4.0.3
577
580
  specification_version: 4
578
581
  summary: Karafka is Ruby and Rails efficient Kafka processing framework.
579
582
  test_files: []