karafka 2.4.16 → 2.4.18

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 (248) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +8 -0
  4. data/Gemfile.lock +1 -1
  5. data/LICENSE +7 -2
  6. data/lib/karafka/base_consumer.rb +7 -7
  7. data/lib/karafka/instrumentation/notifications.rb +1 -0
  8. data/lib/karafka/pro/active_job/consumer.rb +2 -10
  9. data/lib/karafka/pro/active_job/dispatcher.rb +2 -10
  10. data/lib/karafka/pro/active_job/job_options_contract.rb +2 -10
  11. data/lib/karafka/pro/base_consumer.rb +2 -10
  12. data/lib/karafka/pro/cleaner/errors.rb +2 -10
  13. data/lib/karafka/pro/cleaner/messages/message.rb +14 -12
  14. data/lib/karafka/pro/cleaner/messages/messages.rb +2 -10
  15. data/lib/karafka/pro/cleaner/messages/metadata.rb +41 -0
  16. data/lib/karafka/pro/cleaner.rb +3 -10
  17. data/lib/karafka/pro/connection/manager.rb +2 -10
  18. data/lib/karafka/pro/connection/multiplexing/listener.rb +2 -10
  19. data/lib/karafka/pro/contracts/base.rb +2 -10
  20. data/lib/karafka/pro/contracts/server_cli_options.rb +2 -10
  21. data/lib/karafka/pro/encryption/cipher.rb +2 -10
  22. data/lib/karafka/pro/encryption/contracts/config.rb +2 -10
  23. data/lib/karafka/pro/encryption/errors.rb +2 -10
  24. data/lib/karafka/pro/encryption/messages/middleware.rb +2 -10
  25. data/lib/karafka/pro/encryption/messages/parser.rb +2 -10
  26. data/lib/karafka/pro/encryption/setup/config.rb +2 -10
  27. data/lib/karafka/pro/encryption.rb +2 -10
  28. data/lib/karafka/pro/instrumentation/performance_tracker.rb +2 -10
  29. data/lib/karafka/pro/iterator/expander.rb +2 -10
  30. data/lib/karafka/pro/iterator/tpl_builder.rb +2 -10
  31. data/lib/karafka/pro/iterator.rb +2 -10
  32. data/lib/karafka/pro/loader.rb +2 -10
  33. data/lib/karafka/pro/processing/adaptive_iterator/consumer.rb +2 -10
  34. data/lib/karafka/pro/processing/adaptive_iterator/tracker.rb +2 -10
  35. data/lib/karafka/pro/processing/collapser.rb +2 -10
  36. data/lib/karafka/pro/processing/coordinator.rb +2 -10
  37. data/lib/karafka/pro/processing/coordinators/errors_tracker.rb +2 -10
  38. data/lib/karafka/pro/processing/coordinators/filters_applier.rb +2 -10
  39. data/lib/karafka/pro/processing/coordinators/virtual_offset_manager.rb +2 -10
  40. data/lib/karafka/pro/processing/executor.rb +2 -10
  41. data/lib/karafka/pro/processing/expansions_selector.rb +2 -10
  42. data/lib/karafka/pro/processing/filters/base.rb +2 -10
  43. data/lib/karafka/pro/processing/filters/delayer.rb +2 -10
  44. data/lib/karafka/pro/processing/filters/expirer.rb +2 -10
  45. data/lib/karafka/pro/processing/filters/inline_insights_delayer.rb +2 -10
  46. data/lib/karafka/pro/processing/filters/throttler.rb +2 -10
  47. data/lib/karafka/pro/processing/filters/virtual_limiter.rb +2 -10
  48. data/lib/karafka/pro/processing/jobs/consume_non_blocking.rb +2 -10
  49. data/lib/karafka/pro/processing/jobs/eofed_non_blocking.rb +2 -10
  50. data/lib/karafka/pro/processing/jobs/periodic.rb +2 -10
  51. data/lib/karafka/pro/processing/jobs/periodic_non_blocking.rb +2 -10
  52. data/lib/karafka/pro/processing/jobs/revoked_non_blocking.rb +2 -10
  53. data/lib/karafka/pro/processing/jobs_builder.rb +2 -10
  54. data/lib/karafka/pro/processing/jobs_queue.rb +2 -10
  55. data/lib/karafka/pro/processing/offset_metadata/consumer.rb +2 -10
  56. data/lib/karafka/pro/processing/offset_metadata/fetcher.rb +2 -10
  57. data/lib/karafka/pro/processing/offset_metadata/listener.rb +2 -10
  58. data/lib/karafka/pro/processing/partitioner.rb +2 -10
  59. data/lib/karafka/pro/processing/periodic_job/consumer.rb +2 -10
  60. data/lib/karafka/pro/processing/piping/consumer.rb +2 -10
  61. data/lib/karafka/pro/processing/schedulers/base.rb +2 -10
  62. data/lib/karafka/pro/processing/schedulers/default.rb +2 -10
  63. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom.rb +3 -11
  64. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom_vp.rb +3 -11
  65. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom.rb +2 -10
  66. data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom_vp.rb +2 -10
  67. data/lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom.rb +3 -11
  68. data/lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom_vp.rb +3 -11
  69. data/lib/karafka/pro/processing/strategies/aj/dlq_mom.rb +2 -10
  70. data/lib/karafka/pro/processing/strategies/aj/dlq_mom_vp.rb +2 -10
  71. data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom.rb +2 -10
  72. data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom_vp.rb +3 -11
  73. data/lib/karafka/pro/processing/strategies/aj/ftr_mom.rb +2 -10
  74. data/lib/karafka/pro/processing/strategies/aj/ftr_mom_vp.rb +2 -10
  75. data/lib/karafka/pro/processing/strategies/aj/lrj_mom.rb +2 -10
  76. data/lib/karafka/pro/processing/strategies/aj/lrj_mom_vp.rb +3 -11
  77. data/lib/karafka/pro/processing/strategies/aj/mom.rb +2 -10
  78. data/lib/karafka/pro/processing/strategies/aj/mom_vp.rb +2 -10
  79. data/lib/karafka/pro/processing/strategies/base.rb +2 -10
  80. data/lib/karafka/pro/processing/strategies/default.rb +55 -58
  81. data/lib/karafka/pro/processing/strategies/dlq/default.rb +5 -13
  82. data/lib/karafka/pro/processing/strategies/dlq/ftr.rb +2 -10
  83. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj.rb +3 -11
  84. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom.rb +3 -11
  85. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom_vp.rb +2 -10
  86. data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_vp.rb +2 -10
  87. data/lib/karafka/pro/processing/strategies/dlq/ftr_mom.rb +3 -11
  88. data/lib/karafka/pro/processing/strategies/dlq/ftr_mom_vp.rb +2 -10
  89. data/lib/karafka/pro/processing/strategies/dlq/ftr_vp.rb +2 -10
  90. data/lib/karafka/pro/processing/strategies/dlq/lrj.rb +3 -11
  91. data/lib/karafka/pro/processing/strategies/dlq/lrj_mom.rb +3 -11
  92. data/lib/karafka/pro/processing/strategies/dlq/lrj_mom_vp.rb +2 -10
  93. data/lib/karafka/pro/processing/strategies/dlq/lrj_vp.rb +2 -10
  94. data/lib/karafka/pro/processing/strategies/dlq/mom.rb +3 -11
  95. data/lib/karafka/pro/processing/strategies/dlq/mom_vp.rb +2 -10
  96. data/lib/karafka/pro/processing/strategies/dlq/vp.rb +2 -10
  97. data/lib/karafka/pro/processing/strategies/ftr/default.rb +2 -10
  98. data/lib/karafka/pro/processing/strategies/ftr/vp.rb +2 -10
  99. data/lib/karafka/pro/processing/strategies/lrj/default.rb +3 -11
  100. data/lib/karafka/pro/processing/strategies/lrj/ftr.rb +3 -11
  101. data/lib/karafka/pro/processing/strategies/lrj/ftr_mom.rb +2 -10
  102. data/lib/karafka/pro/processing/strategies/lrj/ftr_mom_vp.rb +2 -10
  103. data/lib/karafka/pro/processing/strategies/lrj/ftr_vp.rb +2 -10
  104. data/lib/karafka/pro/processing/strategies/lrj/mom.rb +2 -10
  105. data/lib/karafka/pro/processing/strategies/lrj/mom_vp.rb +2 -10
  106. data/lib/karafka/pro/processing/strategies/lrj/vp.rb +2 -10
  107. data/lib/karafka/pro/processing/strategies/mom/default.rb +2 -10
  108. data/lib/karafka/pro/processing/strategies/mom/ftr.rb +2 -10
  109. data/lib/karafka/pro/processing/strategies/mom/ftr_vp.rb +2 -10
  110. data/lib/karafka/pro/processing/strategies/mom/vp.rb +2 -10
  111. data/lib/karafka/pro/processing/strategies/vp/default.rb +2 -10
  112. data/lib/karafka/pro/processing/strategies.rb +2 -10
  113. data/lib/karafka/pro/processing/strategy_selector.rb +2 -10
  114. data/lib/karafka/pro/processing/subscription_groups_coordinator.rb +2 -10
  115. data/lib/karafka/pro/recurring_tasks/consumer.rb +2 -10
  116. data/lib/karafka/pro/recurring_tasks/contracts/config.rb +2 -10
  117. data/lib/karafka/pro/recurring_tasks/contracts/task.rb +2 -10
  118. data/lib/karafka/pro/recurring_tasks/deserializer.rb +2 -10
  119. data/lib/karafka/pro/recurring_tasks/dispatcher.rb +2 -10
  120. data/lib/karafka/pro/recurring_tasks/errors.rb +2 -10
  121. data/lib/karafka/pro/recurring_tasks/executor.rb +2 -10
  122. data/lib/karafka/pro/recurring_tasks/listener.rb +2 -10
  123. data/lib/karafka/pro/recurring_tasks/matcher.rb +2 -10
  124. data/lib/karafka/pro/recurring_tasks/schedule.rb +2 -10
  125. data/lib/karafka/pro/recurring_tasks/serializer.rb +2 -10
  126. data/lib/karafka/pro/recurring_tasks/setup/config.rb +2 -10
  127. data/lib/karafka/pro/recurring_tasks/task.rb +2 -10
  128. data/lib/karafka/pro/recurring_tasks.rb +2 -10
  129. data/lib/karafka/pro/routing/features/active_job/builder.rb +2 -10
  130. data/lib/karafka/pro/routing/features/active_job.rb +2 -10
  131. data/lib/karafka/pro/routing/features/adaptive_iterator/config.rb +2 -10
  132. data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +2 -10
  133. data/lib/karafka/pro/routing/features/adaptive_iterator/topic.rb +2 -10
  134. data/lib/karafka/pro/routing/features/adaptive_iterator.rb +2 -10
  135. data/lib/karafka/pro/routing/features/base.rb +2 -10
  136. data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +2 -10
  137. data/lib/karafka/pro/routing/features/dead_letter_queue/topic.rb +2 -10
  138. data/lib/karafka/pro/routing/features/dead_letter_queue.rb +2 -10
  139. data/lib/karafka/pro/routing/features/delaying/config.rb +2 -10
  140. data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +2 -10
  141. data/lib/karafka/pro/routing/features/delaying/topic.rb +2 -10
  142. data/lib/karafka/pro/routing/features/delaying.rb +2 -10
  143. data/lib/karafka/pro/routing/features/direct_assignments/config.rb +2 -10
  144. data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +2 -10
  145. data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +2 -10
  146. data/lib/karafka/pro/routing/features/direct_assignments/subscription_group.rb +2 -10
  147. data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +2 -10
  148. data/lib/karafka/pro/routing/features/direct_assignments.rb +2 -10
  149. data/lib/karafka/pro/routing/features/expiring/config.rb +2 -10
  150. data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +2 -10
  151. data/lib/karafka/pro/routing/features/expiring/topic.rb +2 -10
  152. data/lib/karafka/pro/routing/features/expiring.rb +2 -10
  153. data/lib/karafka/pro/routing/features/filtering/config.rb +2 -10
  154. data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +2 -10
  155. data/lib/karafka/pro/routing/features/filtering/topic.rb +2 -10
  156. data/lib/karafka/pro/routing/features/filtering.rb +2 -10
  157. data/lib/karafka/pro/routing/features/inline_insights/config.rb +2 -10
  158. data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +2 -10
  159. data/lib/karafka/pro/routing/features/inline_insights/topic.rb +2 -10
  160. data/lib/karafka/pro/routing/features/inline_insights.rb +2 -10
  161. data/lib/karafka/pro/routing/features/long_running_job/config.rb +2 -10
  162. data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +2 -10
  163. data/lib/karafka/pro/routing/features/long_running_job/topic.rb +2 -10
  164. data/lib/karafka/pro/routing/features/long_running_job.rb +2 -10
  165. data/lib/karafka/pro/routing/features/multiplexing/config.rb +2 -10
  166. data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +2 -10
  167. data/lib/karafka/pro/routing/features/multiplexing/patches/contracts/consumer_group.rb +2 -10
  168. data/lib/karafka/pro/routing/features/multiplexing/proxy.rb +2 -10
  169. data/lib/karafka/pro/routing/features/multiplexing/subscription_group.rb +2 -10
  170. data/lib/karafka/pro/routing/features/multiplexing/subscription_groups_builder.rb +2 -10
  171. data/lib/karafka/pro/routing/features/multiplexing.rb +2 -10
  172. data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +2 -10
  173. data/lib/karafka/pro/routing/features/non_blocking_job.rb +2 -10
  174. data/lib/karafka/pro/routing/features/offset_metadata/config.rb +2 -10
  175. data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +2 -10
  176. data/lib/karafka/pro/routing/features/offset_metadata/topic.rb +2 -10
  177. data/lib/karafka/pro/routing/features/offset_metadata.rb +2 -10
  178. data/lib/karafka/pro/routing/features/patterns/builder.rb +2 -10
  179. data/lib/karafka/pro/routing/features/patterns/config.rb +2 -10
  180. data/lib/karafka/pro/routing/features/patterns/consumer_group.rb +2 -10
  181. data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +2 -10
  182. data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +2 -10
  183. data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +2 -10
  184. data/lib/karafka/pro/routing/features/patterns/detector.rb +2 -10
  185. data/lib/karafka/pro/routing/features/patterns/pattern.rb +2 -10
  186. data/lib/karafka/pro/routing/features/patterns/patterns.rb +2 -10
  187. data/lib/karafka/pro/routing/features/patterns/topic.rb +2 -10
  188. data/lib/karafka/pro/routing/features/patterns/topics.rb +2 -10
  189. data/lib/karafka/pro/routing/features/patterns.rb +2 -10
  190. data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +2 -10
  191. data/lib/karafka/pro/routing/features/pausing/topic.rb +2 -10
  192. data/lib/karafka/pro/routing/features/pausing.rb +2 -10
  193. data/lib/karafka/pro/routing/features/periodic_job/config.rb +2 -10
  194. data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +2 -10
  195. data/lib/karafka/pro/routing/features/periodic_job/topic.rb +2 -10
  196. data/lib/karafka/pro/routing/features/periodic_job.rb +2 -10
  197. data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +2 -10
  198. data/lib/karafka/pro/routing/features/recurring_tasks/config.rb +2 -10
  199. data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +2 -10
  200. data/lib/karafka/pro/routing/features/recurring_tasks/proxy.rb +2 -10
  201. data/lib/karafka/pro/routing/features/recurring_tasks/topic.rb +2 -10
  202. data/lib/karafka/pro/routing/features/recurring_tasks.rb +2 -10
  203. data/lib/karafka/pro/routing/features/scheduled_messages/builder.rb +2 -10
  204. data/lib/karafka/pro/routing/features/scheduled_messages/config.rb +2 -10
  205. data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +2 -10
  206. data/lib/karafka/pro/routing/features/scheduled_messages/proxy.rb +2 -10
  207. data/lib/karafka/pro/routing/features/scheduled_messages/topic.rb +2 -10
  208. data/lib/karafka/pro/routing/features/scheduled_messages.rb +2 -10
  209. data/lib/karafka/pro/routing/features/swarm/config.rb +2 -10
  210. data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +2 -10
  211. data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +2 -10
  212. data/lib/karafka/pro/routing/features/swarm/topic.rb +2 -10
  213. data/lib/karafka/pro/routing/features/swarm.rb +2 -10
  214. data/lib/karafka/pro/routing/features/throttling/config.rb +2 -10
  215. data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +2 -10
  216. data/lib/karafka/pro/routing/features/throttling/topic.rb +2 -10
  217. data/lib/karafka/pro/routing/features/throttling.rb +2 -10
  218. data/lib/karafka/pro/routing/features/virtual_partitions/config.rb +2 -10
  219. data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +2 -10
  220. data/lib/karafka/pro/routing/features/virtual_partitions/topic.rb +2 -10
  221. data/lib/karafka/pro/routing/features/virtual_partitions.rb +2 -10
  222. data/lib/karafka/pro/scheduled_messages/consumer.rb +2 -10
  223. data/lib/karafka/pro/scheduled_messages/contracts/config.rb +2 -10
  224. data/lib/karafka/pro/scheduled_messages/contracts/message.rb +2 -10
  225. data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +2 -10
  226. data/lib/karafka/pro/scheduled_messages/day.rb +2 -10
  227. data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +2 -10
  228. data/lib/karafka/pro/scheduled_messages/deserializers/payload.rb +2 -10
  229. data/lib/karafka/pro/scheduled_messages/dispatcher.rb +2 -10
  230. data/lib/karafka/pro/scheduled_messages/errors.rb +2 -10
  231. data/lib/karafka/pro/scheduled_messages/max_epoch.rb +2 -10
  232. data/lib/karafka/pro/scheduled_messages/proxy.rb +2 -10
  233. data/lib/karafka/pro/scheduled_messages/schema_validator.rb +2 -10
  234. data/lib/karafka/pro/scheduled_messages/serializer.rb +2 -10
  235. data/lib/karafka/pro/scheduled_messages/setup/config.rb +2 -10
  236. data/lib/karafka/pro/scheduled_messages/state.rb +2 -10
  237. data/lib/karafka/pro/scheduled_messages/tracker.rb +2 -10
  238. data/lib/karafka/pro/scheduled_messages.rb +2 -10
  239. data/lib/karafka/pro/swarm/liveness_listener.rb +2 -10
  240. data/lib/karafka/processing/strategies/aj_dlq_mom.rb +1 -1
  241. data/lib/karafka/processing/strategies/default.rb +6 -6
  242. data/lib/karafka/processing/strategies/dlq.rb +3 -3
  243. data/lib/karafka/processing/strategies/dlq_mom.rb +2 -2
  244. data/lib/karafka/version.rb +1 -1
  245. data/lib/karafka.rb +8 -2
  246. data.tar.gz.sig +0 -0
  247. metadata +3 -2
  248. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8510d261a0722b764aff2c59e214bb2b87481ce606488e8f1323c4bf29ee4528
4
- data.tar.gz: 4574f71706749ec5effa830b9c04a6e3072c880220a08fa33f81648f7d3c79be
3
+ metadata.gz: 66dcb47a4936205b3d71838001db5c64e6fab4da332f54fcb8e64521a081c871
4
+ data.tar.gz: 5f113ec8bc1459a5994acf8935c802b893695fd69002937b4a91b5697423cb81
5
5
  SHA512:
6
- metadata.gz: 37c43b9634b43e6608fa7f2ab9320d49d00b2582c211095968d3200412029e0301d17556d31be2e24d8401457fd660473cc46adc4d5835de968a2eba9c51fbef
7
- data.tar.gz: 15d2e2dbd7ee99ab1c726a47a76959f1e3d877cd723f084550711fd9ba4662a30eb39af26f1354847ab906aaec9580e0cde5f7858b0cda521f5f39844195a3c3
6
+ metadata.gz: 1abbfec5c703e755f012d9171934e7486ab0fbfd1295c0fd2b81216156783156415aaa2d547215aa9ec8a62f54db53b269181ed6638644c66529456f897a708a
7
+ data.tar.gz: 677b50678298d384ea4862fc703327a9e351d1f2bacd82f027f4f43fd60cceaac81a93cec133c005e7f90f917162301ff5725bfe5f0ba6ed1754ce2fa0503c66
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Karafka Framework Changelog
2
2
 
3
+ ## 2.4.18 (2025-04-09)
4
+ - [Fix] Make sure `Bundler.with_unbundled_env` is not called multiple times.
5
+
6
+ ## 2.4.17 (2025-01-15)
7
+ - [Enhancement] Clean message key and headers when cleaning messages via the cleaner API (Pro).
8
+ - [Enhancement] Allow for setting `metadata: false` in the cleaner API for granular cleaning control (Pro)
9
+ - [Enhancement] Instrument successful transaction via `consumer.consuming.transaction` event (Pro).
10
+
3
11
  ## 2.4.16 (2024-12-27)
4
12
  - [Enhancement] Improve post-rebalance revocation messages filtering.
5
13
  - [Enhancement] Introduce `Consumer#wrap` for connection pooling management and other wrapped operations.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- karafka (2.4.16)
4
+ karafka (2.4.18)
5
5
  base64 (~> 0.2)
6
6
  karafka-core (>= 2.4.4, < 2.5.0)
7
7
  karafka-rdkafka (>= 0.17.2)
data/LICENSE CHANGED
@@ -6,8 +6,13 @@ for license text.
6
6
 
7
7
  Karafka has also commercial-friendly license, commercial support and commercial components.
8
8
 
9
- All of the commercial components are present in the lib/karafka/pro directory of this repository
10
- and their usage requires commercial license agreement.
9
+ All of the commercial components are present in the:
10
+
11
+ - `lib/karafka/pro`
12
+ - `spec/lib/karafka/pro`
13
+ - `spec/integrations/pro`
14
+
15
+ directories of this repository and their usage requires commercial license agreement.
11
16
 
12
17
  By sending a pull request to the pro components, you are agreeing to transfer the copyright of your
13
18
  code to Maciej Mensfeld.
@@ -12,7 +12,7 @@ module Karafka
12
12
 
13
13
  extend Forwardable
14
14
 
15
- def_delegators :@coordinator, :topic, :partition, :eofed?
15
+ def_delegators :@coordinator, :topic, :partition, :eofed?, :seek_offset, :seek_offset=
16
16
 
17
17
  def_delegators :producer, :produce_async, :produce_sync, :produce_many_async,
18
18
  :produce_many_sync
@@ -109,7 +109,7 @@ module Karafka
109
109
  'error.occurred',
110
110
  error: e,
111
111
  caller: self,
112
- seek_offset: coordinator.seek_offset,
112
+ seek_offset: seek_offset,
113
113
  type: 'consumer.consume.error'
114
114
  )
115
115
  end
@@ -129,7 +129,7 @@ module Karafka
129
129
  'error.occurred',
130
130
  error: e,
131
131
  caller: self,
132
- seek_offset: coordinator.seek_offset,
132
+ seek_offset: seek_offset,
133
133
  type: 'consumer.after_consume.error'
134
134
  )
135
135
 
@@ -149,7 +149,7 @@ module Karafka
149
149
  'error.occurred',
150
150
  error: e,
151
151
  caller: self,
152
- seek_offset: coordinator.seek_offset,
152
+ seek_offset: seek_offset,
153
153
  type: 'consumer.eofed.error'
154
154
  )
155
155
  end
@@ -345,7 +345,7 @@ module Karafka
345
345
  # @note Please note, that if you are seeking to a time offset, getting the offset is blocking
346
346
  def seek(offset, manual_seek = true, reset_offset: false)
347
347
  coordinator.manual_seek if manual_seek
348
- coordinator.seek_offset = nil if reset_offset
348
+ self.seek_offset = nil if reset_offset
349
349
 
350
350
  message = Karafka::Messages::Seek.new(
351
351
  topic.name,
@@ -397,7 +397,7 @@ module Karafka
397
397
  # Pauses the processing from the last offset to retry on given message
398
398
  # @private
399
399
  def retry_after_pause
400
- pause(coordinator.seek_offset, nil, false)
400
+ pause(seek_offset, nil, false)
401
401
 
402
402
  # Instrumentation needs to run **after** `#pause` invocation because we rely on the states
403
403
  # set by `#pause`
@@ -406,7 +406,7 @@ module Karafka
406
406
  caller: self,
407
407
  topic: topic.name,
408
408
  partition: partition,
409
- offset: coordinator.seek_offset,
409
+ offset: seek_offset,
410
410
  timeout: coordinator.pause_tracker.current_timeout,
411
411
  attempt: attempt
412
412
  )
@@ -57,6 +57,7 @@ module Karafka
57
57
  consumer.consuming.pause
58
58
  consumer.consuming.retry
59
59
  consumer.consuming.seek
60
+ consumer.consuming.transaction
60
61
 
61
62
  consumer.before_schedule_idle
62
63
  consumer.idle
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -29,15 +21,25 @@ module Karafka
29
21
  @raw_payload == false
30
22
  end
31
23
 
32
- # Cleans the message payload and removes the deserialized data references
24
+ # Cleans the message payload, headers, key and removes the deserialized data references
33
25
  # This is useful when working with big messages that take a lot of space.
34
26
  #
35
27
  # After the message content is no longer needed, it can be removed so it does not consume
36
28
  # space anymore.
37
- def clean!
29
+ #
30
+ # @param metadata [Boolean] should we also clean metadata alongside the payload. This can
31
+ # be useful when working with iterator and other things that may require only metadata
32
+ # available, while not payload. `true` by default.
33
+ #
34
+ # @note Cleaning of message means we also clean its metadata (headers and key)
35
+ # @note Metadata cleaning (headers and key) can be disabled by setting the `metadata`
36
+ # argument to `false`.
37
+ def clean!(metadata: true)
38
38
  @deserialized = false
39
39
  @raw_payload = false
40
40
  @payload = nil
41
+
42
+ @metadata.clean! if metadata
41
43
  end
42
44
  end
43
45
  end
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
5
+
6
+ module Karafka
7
+ module Pro
8
+ module Cleaner
9
+ # Cleaner messages components related enhancements
10
+ module Messages
11
+ # Extensions to the message metadata that allow for granular memory control on a per
12
+ # message basis
13
+ module Metadata
14
+ # @return [Object] deserialized key. By default in the raw string format.
15
+ def key
16
+ cleaned? ? raise(Errors::MessageCleanedError) : super
17
+ end
18
+
19
+ # @return [Object] deserialized headers. By default its a hash with keys and payload
20
+ # being strings
21
+ def headers
22
+ cleaned? ? raise(Errors::MessageCleanedError) : super
23
+ end
24
+
25
+ # @return [Boolean] true if the message metadata has been cleaned
26
+ def cleaned?
27
+ raw_headers == false
28
+ end
29
+
30
+ # Cleans the headers and key
31
+ def clean!
32
+ self.raw_headers = false
33
+ self.raw_key = false
34
+ @key = nil
35
+ @headers = nil
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -28,6 +20,7 @@ module Karafka
28
20
  # @param _config [Karafka::Core::Configurable::Node] root node config
29
21
  def pre_setup(_config)
30
22
  ::Karafka::Messages::Message.prepend(Messages::Message)
23
+ ::Karafka::Messages::Metadata.prepend(Messages::Metadata)
31
24
  ::Karafka::Messages::Messages.prepend(Messages::Messages)
32
25
  end
33
26
 
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This Karafka component is a Pro component under a commercial license.
4
- # This Karafka component is NOT licensed under LGPL.
5
- #
6
- # All of the commercial components are present in the lib/karafka/pro directory of this
7
- # repository and their usage requires commercial license agreement.
8
- #
9
- # Karafka has also commercial-friendly license, commercial support and commercial components.
10
- #
11
- # By sending a pull request to the pro components, you are agreeing to transfer the copyright of
12
- # your code to Maciej Mensfeld.
3
+ # This code is part of Karafka Pro, a commercial component not licensed under LGPL.
4
+ # See LICENSE for details.
13
5
 
14
6
  module Karafka
15
7
  module Pro