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
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -13,10 +30,10 @@ module Karafka
13
30
  # @return [Boolean] is this message dedicated to current process and is actionable
14
31
  def matches?(task, payload)
15
32
  # We only match commands
16
- return false unless payload[:type] == 'command'
33
+ return false unless payload[:type] == "command"
17
34
 
18
35
  # * is a wildcard to match all for batch commands
19
- return false unless payload[:task][:id] == '*' || payload[:task][:id] == task.id
36
+ return false unless payload[:task][:id] == "*" || payload[:task][:id] == task.id
20
37
 
21
38
  # Ignore messages that have different schema. This can happen in the middle of
22
39
  # upgrades of the framework. We ignore this not to risk compatibility issues
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -9,7 +26,7 @@ module Karafka
9
26
  # Converts schedule command and log details into data we can dispatch to Kafka.
10
27
  class Serializer
11
28
  # Current recurring tasks related schema structure
12
- SCHEMA_VERSION = '1.0'
29
+ SCHEMA_VERSION = "1.0"
13
30
 
14
31
  # Serializes and compresses the schedule with all its tasks and their execution state
15
32
  # @param schedule [Karafka::Pro::RecurringTasks::Schedule]
@@ -32,7 +49,7 @@ module Karafka
32
49
  schema_version: SCHEMA_VERSION,
33
50
  schedule_version: schedule.version,
34
51
  dispatched_at: Time.now.to_f,
35
- type: 'schedule',
52
+ type: "schedule",
36
53
  tasks: tasks
37
54
  }
38
55
 
@@ -49,7 +66,7 @@ module Karafka
49
66
  schema_version: SCHEMA_VERSION,
50
67
  schedule_version: Karafka::Pro::RecurringTasks.schedule.version,
51
68
  dispatched_at: Time.now.to_f,
52
- type: 'command',
69
+ type: "command",
53
70
  command: {
54
71
  name: command_name
55
72
  },
@@ -72,11 +89,11 @@ module Karafka
72
89
  schema_version: SCHEMA_VERSION,
73
90
  schedule_version: Karafka::Pro::RecurringTasks.schedule.version,
74
91
  dispatched_at: Time.now.to_f,
75
- type: 'log',
92
+ type: "log",
76
93
  task: {
77
94
  id: task.id,
78
95
  time_taken: event.payload[:time] || -1,
79
- result: event.payload.key?(:error) ? 'failure' : 'success'
96
+ result: event.payload.key?(:error) ? "failure" : "success"
80
97
  }
81
98
  }
82
99
 
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -14,7 +31,7 @@ module Karafka
14
31
 
15
32
  setting(:consumer_class, default: Consumer)
16
33
  setting(:deserializer, default: Deserializer.new)
17
- setting(:group_id, default: 'karafka_recurring_tasks')
34
+ setting(:group_id, default: "karafka_recurring_tasks")
18
35
  # By default we will run the scheduling every 15 seconds since we provide a minute-based
19
36
  # precision
20
37
  setting(:interval, default: 15_000)
@@ -33,11 +50,11 @@ module Karafka
33
50
 
34
51
  setting(:topics) do
35
52
  setting(:schedules) do
36
- setting(:name, default: 'karafka_recurring_tasks_schedules')
53
+ setting(:name, default: "karafka_recurring_tasks_schedules")
37
54
  end
38
55
 
39
56
  setting(:logs) do
40
- setting(:name, default: 'karafka_recurring_tasks_logs')
57
+ setting(:name, default: "karafka_recurring_tasks_logs")
41
58
  end
42
59
  end
43
60
 
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -86,7 +103,7 @@ module Karafka
86
103
  # Executes the given task and publishes appropriate notification bus events.
87
104
  def call
88
105
  monitor.instrument(
89
- 'recurring_tasks.task.executed',
106
+ "recurring_tasks.task.executed",
90
107
  task: self
91
108
  ) do
92
109
  # We check for presence of the `@executable` because user can define cron schedule
@@ -95,13 +112,13 @@ module Karafka
95
112
 
96
113
  execute
97
114
  end
98
- rescue StandardError => e
115
+ rescue => e
99
116
  monitor.instrument(
100
- 'error.occurred',
117
+ "error.occurred",
101
118
  caller: self,
102
119
  error: e,
103
120
  task: self,
104
- type: 'recurring_tasks.task.execute.error'
121
+ type: "recurring_tasks.task.execute.error"
105
122
  )
106
123
  ensure
107
124
  @trigger = false
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -14,7 +31,7 @@ module Karafka
14
31
  class << self
15
32
  # @return [Schedule, nil] current defined schedule or nil if not defined
16
33
  def schedule
17
- @schedule || define('0.0.0') { nil }
34
+ @schedule || define("0.0.0") { nil }
18
35
  end
19
36
 
20
37
  # Simplified API for schedules definitions and validates the tasks data
@@ -27,14 +44,14 @@ module Karafka
27
44
  # MailingJob.perform_async
28
45
  # end
29
46
  # end
30
- def define(version = '1.0.0', &)
47
+ def define(version = "1.0.0", &)
31
48
  @schedule = Schedule.new(version: version)
32
49
  @schedule.instance_exec(&)
33
50
 
34
51
  @schedule.each do |task|
35
52
  Contracts::Task.new.validate!(
36
53
  task.to_h,
37
- scope: ['recurring_tasks', task.id]
54
+ scope: ["recurring_tasks", task.id]
38
55
  )
39
56
  end
40
57
 
@@ -71,7 +88,7 @@ module Karafka
71
88
  )
72
89
 
73
90
  # Published after task is successfully executed
74
- Karafka.monitor.notifications_bus.register_event('recurring_tasks.task.executed')
91
+ Karafka.monitor.notifications_bus.register_event("recurring_tasks.task.executed")
75
92
 
76
93
  # Initialize empty dummy schedule, so we always have one and so we do not have to
77
94
  # deal with a case where there is no schedule
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -14,8 +31,8 @@ module Karafka
14
31
  class Topic < Karafka::Contracts::Base
15
32
  configure do |config|
16
33
  config.error_messages = YAML.safe_load_file(
17
- File.join(Karafka.gem_root, 'config', 'locales', 'pro_errors.yml')
18
- ).fetch('en').fetch('validations').fetch('routing').fetch('topic')
34
+ File.join(Karafka.gem_root, "config", "locales", "pro_errors.yml")
35
+ ).fetch("en").fetch("validations").fetch("routing").fetch("topic")
19
36
  end
20
37
 
21
38
  nested(:adaptive_iterator) do
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -14,8 +31,8 @@ module Karafka
14
31
  class Topic < Karafka::Contracts::Base
15
32
  configure do |config|
16
33
  config.error_messages = YAML.safe_load_file(
17
- File.join(Karafka.gem_root, 'config', 'locales', 'pro_errors.yml')
18
- ).fetch('en').fetch('validations').fetch('routing').fetch('topic')
34
+ File.join(Karafka.gem_root, "config", "locales", "pro_errors.yml")
35
+ ).fetch("en").fetch("validations").fetch("routing").fetch("topic")
19
36
  end
20
37
 
21
38
  nested(:dead_letter_queue) do
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -31,7 +48,7 @@ module Karafka
31
48
  super(**args).tap do |config|
32
49
  # If explicit strategy is not provided, use the default approach from OSS
33
50
  config.strategy = strategy || lambda do |_errors_tracker, attempt|
34
- attempt > config.max_retries ? :dispatch : :retry
51
+ (attempt > config.max_retries) ? :dispatch : :retry
35
52
  end
36
53
  end
37
54
  end
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro
@@ -1,7 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
- # See LICENSE for details.
3
+ # Karafka Pro - Source Available Commercial Software
4
+ # Copyright (c) 2017-present Maciej Mensfeld. All rights reserved.
5
+ #
6
+ # This software is NOT open source. It is source-available commercial software
7
+ # requiring a paid license for use. It is NOT covered by LGPL.
8
+ #
9
+ # PROHIBITED:
10
+ # - Use without a valid commercial license
11
+ # - Redistribution, modification, or derivative works without authorization
12
+ # - Use as training data for AI/ML models or inclusion in datasets
13
+ # - Scraping, crawling, or automated collection for any purpose
14
+ #
15
+ # PERMITTED:
16
+ # - Reading, referencing, and linking for personal or commercial use
17
+ # - Runtime retrieval by AI assistants, coding agents, and RAG systems
18
+ # for the purpose of providing contextual help to Karafka users
19
+ #
20
+ # License: https://karafka.io/docs/Pro-License-Comm/
21
+ # Contact: contact@karafka.io
5
22
 
6
23
  module Karafka
7
24
  module Pro