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
@@ -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
@@ -52,7 +44,7 @@ module Karafka
52
44
  elsif !revoked?
53
45
  # no need to check for manual seek because AJ consumer is internal and
54
46
  # fully controlled by us
55
- seek(coordinator.seek_offset, false)
47
+ seek(seek_offset, false)
56
48
  resume
57
49
  else
58
50
  resume
@@ -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
@@ -44,7 +36,7 @@ module Karafka
44
36
 
45
37
  # no need to check for manual seek because AJ consumer is internal and
46
38
  # fully controlled by us
47
- seek(coordinator.seek_offset, false) unless revoked?
39
+ seek(seek_offset, false) unless revoked?
48
40
 
49
41
  resume
50
42
  else
@@ -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
@@ -48,7 +40,7 @@ module Karafka
48
40
  mark_as_consumed(last_group_message) unless revoked?
49
41
  # no need to check for manual seek because AJ consumer is internal and
50
42
  # fully controlled by us
51
- seek(coordinator.seek_offset, false) unless revoked?
43
+ seek(seek_offset, false) unless revoked?
52
44
 
53
45
  resume
54
46
  else
@@ -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
@@ -48,7 +40,7 @@ module Karafka
48
40
  elsif !revoked?
49
41
  # no need to check for manual seek because AJ consumer is internal and
50
42
  # fully controlled by us
51
- seek(coordinator.seek_offset, false)
43
+ seek(seek_offset, false)
52
44
  resume
53
45
  else
54
46
  resume
@@ -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
@@ -51,7 +43,7 @@ module Karafka
51
43
 
52
44
  # no need to check for manual seek because AJ consumer is internal and
53
45
  # fully controlled by us
54
- seek(coordinator.seek_offset, false) unless revoked?
46
+ seek(seek_offset, false) unless revoked?
55
47
 
56
48
  resume
57
49
  else
@@ -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
@@ -62,9 +54,9 @@ module Karafka
62
54
  else
63
55
  # seek offset can be nil only in case `#seek` was invoked with offset reset request
64
56
  # In case like this we ignore marking
65
- return true if coordinator.seek_offset.nil?
57
+ return true if seek_offset.nil?
66
58
  # Ignore earlier offsets than the one we already committed
67
- return true if coordinator.seek_offset > message.offset
59
+ return true if seek_offset > message.offset
68
60
  return false if revoked?
69
61
 
70
62
  # If we are not inside a transaction but this is a transactional topic, we mark with
@@ -77,7 +69,7 @@ module Karafka
77
69
 
78
70
  return revoked? unless stored
79
71
 
80
- coordinator.seek_offset = message.offset + 1
72
+ self.seek_offset = message.offset + 1
81
73
  end
82
74
 
83
75
  true
@@ -99,9 +91,9 @@ module Karafka
99
91
  else
100
92
  # seek offset can be nil only in case `#seek` was invoked with offset reset request
101
93
  # In case like this we ignore marking
102
- return true if coordinator.seek_offset.nil?
94
+ return true if seek_offset.nil?
103
95
  # Ignore earlier offsets than the one we already committed
104
- return true if coordinator.seek_offset > message.offset
96
+ return true if seek_offset > message.offset
105
97
  return false if revoked?
106
98
 
107
99
  # If we are not inside a transaction but this is a transactional topic, we mark with
@@ -114,7 +106,7 @@ module Karafka
114
106
 
115
107
  return revoked? unless stored
116
108
 
117
- coordinator.seek_offset = message.offset + 1
109
+ self.seek_offset = message.offset + 1
118
110
  end
119
111
 
120
112
  true
@@ -143,52 +135,57 @@ module Karafka
143
135
  # way, so the message producing aliases operate from within transactions and since the
144
136
  # producer in transaction is locked, it will prevent other threads from using it.
145
137
  def transaction(active_producer = producer)
146
- default_producer = producer
147
- self.producer = active_producer
138
+ default_producer = nil
139
+ transaction_started = nil
148
140
 
149
- transaction_started = false
141
+ monitor.instrument('consumer.consuming.transaction', caller: self) do
142
+ default_producer = producer
143
+ self.producer = active_producer
150
144
 
151
- # Prevent from nested transactions. It would not make any sense
152
- raise Errors::TransactionAlreadyInitializedError if @_in_transaction
145
+ transaction_started = false
153
146
 
154
- transaction_started = true
155
- @_transaction_marked = []
156
- @_in_transaction = true
157
- @_in_transaction_marked = false
147
+ # Prevent from nested transactions. It would not make any sense
148
+ raise Errors::TransactionAlreadyInitializedError if @_in_transaction
158
149
 
159
- producer.transaction do
160
- yield
150
+ transaction_started = true
151
+ @_transaction_marked = []
152
+ @_in_transaction = true
153
+ @_in_transaction_marked = false
161
154
 
162
- # Ensure this transaction is rolled back if we have lost the ownership of this
163
- # transaction. We do it only for transactions that contain offset management as for
164
- # producer only, this is not relevant.
165
- raise Errors::AssignmentLostError if @_in_transaction_marked && revoked?
166
- end
155
+ producer.transaction do
156
+ yield
167
157
 
168
- @_in_transaction = false
169
-
170
- # This offset is already stored in transaction but we set it here anyhow because we
171
- # want to make sure our internal in-memory state is aligned with the transaction
172
- #
173
- # @note We never need to use the blocking `#mark_as_consumed!` here because the offset
174
- # anyhow was already stored during the transaction
175
- #
176
- # @note Since the offset could have been already stored in Kafka (could have because
177
- # you can have transactions without marking), we use the `@_in_transaction_marked`
178
- # state to decide if we need to dispatch the offset via client at all
179
- # (if post transaction, then we do not have to)
180
- #
181
- # @note In theory we could only keep reference to the most recent marking and reject
182
- # others. We however do not do it for two reasons:
183
- # - User may have non standard flow relying on some alternative order and we want to
184
- # mimic this
185
- # - Complex strategies like VPs can use this in VPs to mark in parallel without
186
- # having to redefine the transactional flow completely
187
- @_transaction_marked.each do |marking|
188
- marking.pop ? mark_as_consumed(*marking) : mark_as_consumed!(*marking)
189
- end
158
+ # Ensure this transaction is rolled back if we have lost the ownership of this
159
+ # transaction. We do it only for transactions that contain offset management as for
160
+ # producer only, this is not relevant.
161
+ raise Errors::AssignmentLostError if @_in_transaction_marked && revoked?
162
+ end
190
163
 
191
- true
164
+ @_in_transaction = false
165
+
166
+ # This offset is already stored in transaction but we set it here anyhow because we
167
+ # want to make sure our internal in-memory state is aligned with the transaction
168
+ #
169
+ # @note We never need to use the blocking `#mark_as_consumed!` here because the
170
+ # offset anyhow was already stored during the transaction
171
+ #
172
+ # @note Since the offset could have been already stored in Kafka (could have because
173
+ # you can have transactions without marking), we use the `@_in_transaction_marked`
174
+ # state to decide if we need to dispatch the offset via client at all
175
+ # (if post transaction, then we do not have to)
176
+ #
177
+ # @note In theory we could only keep reference to the most recent marking and reject
178
+ # others. We however do not do it for two reasons:
179
+ # - User may have non standard flow relying on some alternative order and we want
180
+ # to mimic this
181
+ # - Complex strategies like VPs can use this in VPs to mark in parallel without
182
+ # having to redefine the transactional flow completely
183
+ @_transaction_marked.each do |marking|
184
+ marking.pop ? mark_as_consumed(*marking) : mark_as_consumed!(*marking)
185
+ end
186
+
187
+ true
188
+ end
192
189
  ensure
193
190
  self.producer = default_producer
194
191
 
@@ -254,15 +251,15 @@ module Karafka
254
251
  def mark_in_memory(message)
255
252
  # seek offset can be nil only in case `#seek` was invoked with offset reset request
256
253
  # In case like this we ignore marking
257
- return true if coordinator.seek_offset.nil?
254
+ return true if seek_offset.nil?
258
255
  # Ignore earlier offsets than the one we already committed
259
- return true if coordinator.seek_offset > message.offset
256
+ return true if seek_offset > message.offset
260
257
  return false if revoked?
261
258
 
262
259
  # If we have already marked this successfully in a transaction that was running
263
260
  # we should not mark it again with the client offset delegation but instead we should
264
261
  # just align the in-memory state
265
- coordinator.seek_offset = message.offset + 1
262
+ self.seek_offset = message.offset + 1
266
263
 
267
264
  true
268
265
  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
@@ -90,7 +82,7 @@ module Karafka
90
82
  # information if this message was from marked offset or figured out via mom flow
91
83
  def find_skippable_message
92
84
  skippable_message = messages.find do |msg|
93
- coordinator.marked? && msg.offset == coordinator.seek_offset
85
+ coordinator.marked? && msg.offset == seek_offset
94
86
  end
95
87
 
96
88
  # If we don't have the message matching the last comitted offset, it means that
@@ -139,7 +131,7 @@ module Karafka
139
131
  if mark_after_dispatch?
140
132
  mark_dispatched_to_dlq(skippable_message)
141
133
  else
142
- coordinator.seek_offset = skippable_message.offset + 1
134
+ self.seek_offset = skippable_message.offset + 1
143
135
  end
144
136
  end
145
137
 
@@ -234,7 +226,7 @@ module Karafka
234
226
  coordinator.pause_tracker.reset
235
227
 
236
228
  # Always backoff after DLQ dispatch even on skip to prevent overloads on errors
237
- pause(coordinator.seek_offset, nil, false)
229
+ pause(seek_offset, nil, false)
238
230
  end
239
231
 
240
232
  # Marks message that went to DLQ (if applicable) based on the requested method
@@ -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
@@ -48,7 +40,7 @@ module Karafka
48
40
  if coordinator.filtered? && !revoked?
49
41
  handle_post_filtering
50
42
  elsif !revoked? && !coordinator.manual_seek?
51
- seek(coordinator.seek_offset, false)
43
+ seek(seek_offset, false)
52
44
  resume
53
45
  else
54
46
  resume
@@ -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
@@ -58,7 +50,7 @@ module Karafka
58
50
  if mark_after_dispatch?
59
51
  mark_dispatched_to_dlq(skippable_message)
60
52
  else
61
- coordinator.seek_offset = skippable_message.offset + 1
53
+ self.seek_offset = skippable_message.offset + 1
62
54
  end
63
55
  end
64
56
  end