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
@@ -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
@@ -37,14 +54,17 @@ module Karafka
37
54
 
38
55
  if coordinator.filtered? && !revoked?
39
56
  handle_post_filtering
57
+
58
+ # :seek and :pause are fully handled by handle_post_filtering
59
+ # For :skip we still need to resume the LRJ MAX_PAUSE_TIME pause
60
+ return unless coordinator.filter.action == :skip
40
61
  elsif !revoked?
41
62
  # no need to check for manual seek because AJ consumer is internal and
42
63
  # fully controlled by us
43
64
  seek(seek_offset, false, reset_offset: false)
44
- resume
45
- else
46
- resume
47
65
  end
66
+
67
+ resume
48
68
  else
49
69
  retry_after_pause
50
70
  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
@@ -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
@@ -61,8 +78,8 @@ module Karafka
61
78
  coordinator.revoke
62
79
  end
63
80
 
64
- monitor.instrument('consumer.revoke', caller: self)
65
- monitor.instrument('consumer.revoked', caller: self) do
81
+ monitor.instrument("consumer.revoke", caller: self)
82
+ monitor.instrument("consumer.revoked", caller: self) do
66
83
  revoked
67
84
  end
68
85
  ensure
@@ -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
@@ -65,12 +82,12 @@ module Karafka
65
82
  # If we are not inside a transaction but this is a transactional topic, we mark with
66
83
  # artificially created transaction
67
84
  stored = if producer.transactional?
68
- mark_with_transaction(message, offset_metadata, true)
69
- elsif @_transactional_marking
70
- raise Errors::NonTransactionalMarkingAttemptError
71
- else
72
- client.mark_as_consumed(message, offset_metadata)
73
- end
85
+ mark_with_transaction(message, offset_metadata, true)
86
+ elsif @_transactional_marking
87
+ raise Errors::NonTransactionalMarkingAttemptError
88
+ else
89
+ client.mark_as_consumed(message, offset_metadata)
90
+ end
74
91
 
75
92
  return revoked? unless stored
76
93
 
@@ -107,12 +124,12 @@ module Karafka
107
124
  # If we are not inside a transaction but this is a transactional topic, we mark with
108
125
  # artificially created transaction
109
126
  stored = if producer.transactional?
110
- mark_with_transaction(message, offset_metadata, false)
111
- elsif @_transactional_marking
112
- raise Errors::NonTransactionalMarkingAttemptError
113
- else
114
- client.mark_as_consumed!(message, offset_metadata)
115
- end
127
+ mark_with_transaction(message, offset_metadata, false)
128
+ elsif @_transactional_marking
129
+ raise Errors::NonTransactionalMarkingAttemptError
130
+ else
131
+ client.mark_as_consumed!(message, offset_metadata)
132
+ end
116
133
 
117
134
  return revoked? unless stored
118
135
 
@@ -148,7 +165,7 @@ module Karafka
148
165
  default_producer = nil
149
166
  transaction_started = nil
150
167
 
151
- monitor.instrument('consumer.consuming.transaction', caller: self) do
168
+ monitor.instrument("consumer.consuming.transaction", caller: self) do
152
169
  default_producer = producer
153
170
  self.producer = active_producer
154
171
 
@@ -294,7 +311,7 @@ module Karafka
294
311
 
295
312
  # No actions needed for the standard flow here
296
313
  def handle_before_schedule_consume
297
- monitor.instrument('consumer.before_schedule_consume', caller: self)
314
+ monitor.instrument("consumer.before_schedule_consume", caller: self)
298
315
 
299
316
  nil
300
317
  end
@@ -313,15 +330,15 @@ module Karafka
313
330
  # This can happen primarily when an LRJ job gets to the internal worker queue and
314
331
  # this partition is revoked prior processing.
315
332
  unless revoked?
316
- monitor.instrument('consumer.consume', caller: self)
317
- monitor.instrument('consumer.consumed', caller: self) do
333
+ monitor.instrument("consumer.consume", caller: self)
334
+ monitor.instrument("consumer.consumed", caller: self) do
318
335
  consume
319
336
  end
320
337
  end
321
338
 
322
339
  # Mark job as successful
323
340
  coordinator.success!(self)
324
- rescue StandardError => e
341
+ rescue => e
325
342
  # If failed, mark as failed
326
343
  coordinator.failure!(self, e)
327
344
 
@@ -360,8 +377,8 @@ module Karafka
360
377
  coordinator.revoke
361
378
  end
362
379
 
363
- monitor.instrument('consumer.revoke', caller: self)
364
- monitor.instrument('consumer.revoked', caller: self) do
380
+ monitor.instrument("consumer.revoke", caller: self)
381
+ monitor.instrument("consumer.revoked", caller: self) do
365
382
  revoked
366
383
  end
367
384
  ensure
@@ -370,15 +387,15 @@ module Karafka
370
387
 
371
388
  # No action needed for the tick standard flow
372
389
  def handle_before_schedule_tick
373
- monitor.instrument('consumer.before_schedule_tick', caller: self)
390
+ monitor.instrument("consumer.before_schedule_tick", caller: self)
374
391
 
375
392
  nil
376
393
  end
377
394
 
378
395
  # Runs the consumer `#tick` method with reporting
379
396
  def handle_tick
380
- monitor.instrument('consumer.tick', caller: self)
381
- monitor.instrument('consumer.ticked', caller: self) do
397
+ monitor.instrument("consumer.tick", caller: self)
398
+ monitor.instrument("consumer.ticked", caller: self) do
382
399
  tick
383
400
  end
384
401
  ensure
@@ -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
@@ -112,7 +129,7 @@ module Karafka
112
129
 
113
130
  # Notify about dispatch on the events bus
114
131
  monitor.instrument(
115
- 'dead_letter_queue.dispatched',
132
+ "dead_letter_queue.dispatched",
116
133
  caller: self,
117
134
  message: skippable_message
118
135
  )
@@ -153,12 +170,12 @@ module Karafka
153
170
  partition_key: source_partition,
154
171
  payload: skippable_message.raw_payload,
155
172
  headers: skippable_message.raw_headers.merge(
156
- 'source_topic' => topic.name,
157
- 'source_partition' => source_partition,
158
- 'source_offset' => skippable_message.offset.to_s,
159
- 'source_consumer_group' => topic.consumer_group.id,
160
- 'source_attempts' => attempt.to_s,
161
- 'source_trace_id' => errors_tracker.trace_id
173
+ "source_topic" => topic.name,
174
+ "source_partition" => source_partition,
175
+ "source_offset" => skippable_message.offset.to_s,
176
+ "source_consumer_group" => topic.consumer_group.id,
177
+ "source_attempts" => attempt.to_s,
178
+ "source_trace_id" => errors_tracker.trace_id
162
179
  )
163
180
  }
164
181
 
@@ -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
@@ -39,12 +56,15 @@ module Karafka
39
56
 
40
57
  if coordinator.filtered? && !revoked?
41
58
  handle_post_filtering
59
+
60
+ # :seek and :pause are fully handled by handle_post_filtering
61
+ # For :skip we still need to resume the LRJ MAX_PAUSE_TIME pause
62
+ return unless coordinator.filter.action == :skip
42
63
  elsif !revoked? && !coordinator.manual_seek?
43
64
  seek(seek_offset, false, reset_offset: false)
44
- resume
45
- else
46
- resume
47
65
  end
66
+
67
+ resume
48
68
  else
49
69
  apply_dlq_flow do
50
70
  return resume if revoked?
@@ -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
@@ -34,12 +51,15 @@ module Karafka
34
51
 
35
52
  if coordinator.filtered? && !revoked?
36
53
  handle_post_filtering
54
+
55
+ # :seek and :pause are fully handled by handle_post_filtering
56
+ # For :skip we still need to resume the LRJ MAX_PAUSE_TIME pause
57
+ return unless coordinator.filter.action == :skip
37
58
  elsif !revoked? && !coordinator.manual_seek?
38
59
  seek(last_group_message.offset + 1, false, reset_offset: false)
39
- resume
40
- else
41
- resume
42
60
  end
61
+
62
+ resume
43
63
  else
44
64
  apply_dlq_flow do
45
65
  return resume if revoked?
@@ -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