karafka 2.4.16 → 2.4.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (247) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +5 -0
  4. data/Gemfile.lock +2 -2
  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.tar.gz.sig +0 -0
  246. metadata +3 -2
  247. 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