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
@@ -11,91 +11,105 @@ module Karafka
11
11
  # Altering is done in the incremental way.
12
12
  class Configs < Admin
13
13
  class << self
14
- # Fetches given resources configurations from Kafka
15
- #
16
- # @param resources [Resource, Array<Resource>] single resource we want to describe or
17
- # list of resources we are interested in. It is useful to provide multiple resources
18
- # when you need data from multiple topics, etc. Karafka will make one query for all the
19
- # data instead of doing one per topic.
20
- #
21
- # @return [Array<Resource>] array with resources containing their configuration details
22
- #
23
- # @note Even if you request one resource, result will always be an array with resources
24
- #
25
- # @example Describe topic named "example" and print its config
26
- # resource = Karafka::Admin::Configs::Resource.new(type: :topic, name: 'example')
27
- # results = Karafka::Admin::Configs.describe(resource)
28
- # results.first.configs.each do |config|
29
- # puts "#{config.name} - #{config.value}"
30
- # end
14
+ # @param resources [Resource, Array<Resource>] single resource or list of resources
15
+ # to fetch configuration from Kafka
16
+ # @see #describe
31
17
  def describe(*resources)
32
- operate_on_resources(
33
- :describe_configs,
34
- resources
35
- )
18
+ new.describe(*resources)
36
19
  end
37
20
 
38
- # Alters given resources based on the alteration operations accumulated in the provided
39
- # resources
40
- #
41
- # @param resources [Resource, Array<Resource>] single resource we want to alter or
42
- # list of resources.
43
- #
44
- # @note This operation is not transactional and can work only partially if some config
45
- # options are not valid. Always make sure, your alterations are correct.
46
- #
47
- # @note We call it `#alter` despite using the Kafka incremental alter API because the
48
- # regular alter is deprecated.
49
- #
50
- # @example Alter the `delete.retention.ms` and set it to 8640001
51
- # resource = Karafka::Admin::Configs::Resource.new(type: :topic, name: 'example')
52
- # resource.set('delete.retention.ms', '8640001')
53
- # Karafka::Admin::Configs.alter(resource)
21
+ # @param resources [Resource, Array<Resource>] single resource or list of resources
22
+ # with accumulated alteration operations to apply
23
+ # @see #alter
54
24
  def alter(*resources)
55
- operate_on_resources(
56
- :incremental_alter_configs,
57
- resources
58
- )
25
+ new.alter(*resources)
59
26
  end
27
+ end
60
28
 
61
- private
29
+ # Fetches given resources configurations from Kafka
30
+ #
31
+ # @param resources [Resource, Array<Resource>] single resource we want to describe or
32
+ # list of resources we are interested in. It is useful to provide multiple resources
33
+ # when you need data from multiple topics, etc. Karafka will make one query for all the
34
+ # data instead of doing one per topic.
35
+ #
36
+ # @return [Array<Resource>] array with resources containing their configuration details
37
+ #
38
+ # @note Even if you request one resource, result will always be an array with resources
39
+ #
40
+ # @example Describe topic named "example" and print its config
41
+ # resource = Karafka::Admin::Configs::Resource.new(type: :topic, name: 'example')
42
+ # results = Karafka::Admin::Configs.describe(resource)
43
+ # results.first.configs.each do |config|
44
+ # puts "#{config.name} - #{config.value}"
45
+ # end
46
+ def describe(*resources)
47
+ operate_on_resources(
48
+ :describe_configs,
49
+ resources
50
+ )
51
+ end
62
52
 
63
- # @param action [Symbol] runs given action via Rdkafka Admin
64
- # @param resources [Array<Resource>] resources on which we want to operate
65
- def operate_on_resources(action, resources)
66
- resources = Array(resources).flatten
53
+ # Alters given resources based on the alteration operations accumulated in the provided
54
+ # resources
55
+ #
56
+ # @param resources [Resource, Array<Resource>] single resource we want to alter or
57
+ # list of resources.
58
+ #
59
+ # @note This operation is not transactional and can work only partially if some config
60
+ # options are not valid. Always make sure, your alterations are correct.
61
+ #
62
+ # @note We call it `#alter` despite using the Kafka incremental alter API because the
63
+ # regular alter is deprecated.
64
+ #
65
+ # @example Alter the `delete.retention.ms` and set it to 8640001
66
+ # resource = Karafka::Admin::Configs::Resource.new(type: :topic, name: 'example')
67
+ # resource.set('delete.retention.ms', '8640001')
68
+ # Karafka::Admin::Configs.alter(resource)
69
+ def alter(*resources)
70
+ operate_on_resources(
71
+ :incremental_alter_configs,
72
+ resources
73
+ )
74
+ end
67
75
 
68
- result = with_admin_wait do |admin|
69
- admin.public_send(
70
- action,
71
- resources.map(&:to_native_hash)
72
- )
73
- end
76
+ private
74
77
 
75
- result.resources.map do |rd_kafka_resource|
76
- # Create back a resource
77
- resource = Resource.new(
78
- name: rd_kafka_resource.name,
79
- type: rd_kafka_resource.type
80
- )
78
+ # @param action [Symbol] runs given action via Rdkafka Admin
79
+ # @param resources [Array<Resource>] resources on which we want to operate
80
+ def operate_on_resources(action, resources)
81
+ resources = Array(resources).flatten
81
82
 
82
- rd_kafka_resource.configs.each do |rd_kafka_config|
83
- resource.configs << Config.from_rd_kafka(rd_kafka_config)
84
- end
83
+ result = with_admin_wait do |admin|
84
+ admin.public_send(
85
+ action,
86
+ resources.map(&:to_native_hash)
87
+ )
88
+ end
85
89
 
86
- resource.configs.sort_by!(&:name)
87
- resource.configs.freeze
90
+ result.resources.map do |rd_kafka_resource|
91
+ # Create back a resource
92
+ resource = Resource.new(
93
+ name: rd_kafka_resource.name,
94
+ type: rd_kafka_resource.type
95
+ )
88
96
 
89
- resource
97
+ rd_kafka_resource.configs.each do |rd_kafka_config|
98
+ resource.configs << Config.from_rd_kafka(rd_kafka_config)
90
99
  end
100
+
101
+ resource.configs.sort_by!(&:name)
102
+ resource.configs.freeze
103
+
104
+ resource
91
105
  end
106
+ end
92
107
 
93
- # Yields admin instance, allows to run Acl operations and awaits on the final result
94
- # Makes sure that admin is closed afterwards.
95
- def with_admin_wait
96
- with_admin do |admin|
97
- yield(admin).wait(max_wait_timeout: max_wait_time)
98
- end
108
+ # Yields admin instance, allows to run Configs operations and awaits on the final result
109
+ # Makes sure that admin is closed afterwards.
110
+ def with_admin_wait
111
+ with_admin do |admin|
112
+ yield(admin).wait(max_wait_timeout_ms: self.class.max_wait_time)
99
113
  end
100
114
  end
101
115
  end