karafka 2.5.1 → 2.5.3

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 (238) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +21 -29
  3. data/.github/workflows/ci_macos_arm64.yml +1 -1
  4. data/.github/workflows/push.yml +2 -2
  5. data/.github/workflows/trigger-wiki-refresh.yml +1 -1
  6. data/.ruby-version +1 -1
  7. data/.yard-lint.yml +174 -0
  8. data/CHANGELOG.md +20 -4
  9. data/Gemfile +1 -2
  10. data/Gemfile.lock +45 -41
  11. data/bin/integrations +2 -1
  12. data/bin/rspecs +4 -0
  13. data/config/locales/errors.yml +6 -4
  14. data/config/locales/pro_errors.yml +5 -4
  15. data/docker-compose.yml +1 -1
  16. data/examples/payloads/json/sample_set_02/download.json +191 -0
  17. data/examples/payloads/json/sample_set_03/event_type_1.json +18 -0
  18. data/examples/payloads/json/sample_set_03/event_type_2.json +263 -0
  19. data/examples/payloads/json/sample_set_03/event_type_3.json +41 -0
  20. data/karafka.gemspec +3 -3
  21. data/lib/active_job/queue_adapters/karafka_adapter.rb +3 -3
  22. data/lib/karafka/active_job/consumer.rb +7 -3
  23. data/lib/karafka/active_job/current_attributes/job_wrapper.rb +45 -0
  24. data/lib/karafka/active_job/current_attributes/loading.rb +1 -1
  25. data/lib/karafka/active_job/current_attributes/persistence.rb +19 -7
  26. data/lib/karafka/active_job/current_attributes.rb +3 -2
  27. data/lib/karafka/active_job/deserializer.rb +61 -0
  28. data/lib/karafka/active_job/dispatcher.rb +34 -14
  29. data/lib/karafka/active_job/job_options_contract.rb +2 -4
  30. data/lib/karafka/admin/acl.rb +8 -4
  31. data/lib/karafka/admin/configs/config.rb +6 -4
  32. data/lib/karafka/admin/configs/resource.rb +7 -1
  33. data/lib/karafka/admin/consumer_groups.rb +80 -12
  34. data/lib/karafka/admin/topics.rb +43 -9
  35. data/lib/karafka/admin.rb +23 -14
  36. data/lib/karafka/app.rb +3 -3
  37. data/lib/karafka/base_consumer.rb +6 -6
  38. data/lib/karafka/cli/base.rb +2 -2
  39. data/lib/karafka/cli/console.rb +1 -1
  40. data/lib/karafka/cli/contracts/server.rb +3 -5
  41. data/lib/karafka/cli/help.rb +1 -1
  42. data/lib/karafka/cli/install.rb +3 -2
  43. data/lib/karafka/cli/server.rb +1 -1
  44. data/lib/karafka/cli/swarm.rb +1 -1
  45. data/lib/karafka/cli/topics/align.rb +1 -1
  46. data/lib/karafka/cli/topics/repartition.rb +2 -2
  47. data/lib/karafka/connection/client.rb +30 -19
  48. data/lib/karafka/connection/listeners_batch.rb +2 -3
  49. data/lib/karafka/connection/manager.rb +1 -0
  50. data/lib/karafka/connection/proxy.rb +12 -8
  51. data/lib/karafka/connection/rebalance_manager.rb +1 -1
  52. data/lib/karafka/connection/status.rb +1 -0
  53. data/lib/karafka/constraints.rb +1 -1
  54. data/lib/karafka/contracts/base.rb +1 -1
  55. data/lib/karafka/deserializers/payload.rb +1 -1
  56. data/lib/karafka/env.rb +1 -2
  57. data/lib/karafka/helpers/async.rb +1 -1
  58. data/lib/karafka/helpers/config_importer.rb +3 -3
  59. data/lib/karafka/helpers/interval_runner.rb +4 -1
  60. data/lib/karafka/helpers/multi_delegator.rb +3 -0
  61. data/lib/karafka/instrumentation/assignments_tracker.rb +19 -1
  62. data/lib/karafka/instrumentation/callbacks/error.rb +2 -2
  63. data/lib/karafka/instrumentation/callbacks/statistics.rb +3 -3
  64. data/lib/karafka/instrumentation/logger.rb +6 -6
  65. data/lib/karafka/instrumentation/monitor.rb +3 -3
  66. data/lib/karafka/instrumentation/notifications.rb +1 -0
  67. data/lib/karafka/instrumentation/vendors/appsignal/base.rb +3 -4
  68. data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +3 -4
  69. data/lib/karafka/instrumentation/vendors/datadog/metrics_listener.rb +10 -11
  70. data/lib/karafka/instrumentation/vendors/kubernetes/base_listener.rb +1 -1
  71. data/lib/karafka/instrumentation/vendors/kubernetes/liveness_listener.rb +5 -18
  72. data/lib/karafka/messages/builders/batch_metadata.rb +2 -2
  73. data/lib/karafka/messages/builders/message.rb +1 -1
  74. data/lib/karafka/messages/messages.rb +2 -3
  75. data/lib/karafka/patches/rdkafka/bindings.rb +6 -6
  76. data/lib/karafka/patches/rdkafka/opaque.rb +1 -1
  77. data/lib/karafka/pro/active_job/consumer.rb +2 -2
  78. data/lib/karafka/pro/active_job/dispatcher.rb +10 -6
  79. data/lib/karafka/pro/active_job/job_options_contract.rb +2 -4
  80. data/lib/karafka/pro/cleaner/messages/messages.rb +2 -3
  81. data/lib/karafka/pro/cleaner.rb +3 -3
  82. data/lib/karafka/pro/cli/contracts/server.rb +3 -5
  83. data/lib/karafka/pro/cli/parallel_segments/base.rb +5 -5
  84. data/lib/karafka/pro/cli/parallel_segments/collapse.rb +3 -3
  85. data/lib/karafka/pro/cli/parallel_segments/distribute.rb +3 -3
  86. data/lib/karafka/pro/cli/parallel_segments.rb +1 -1
  87. data/lib/karafka/pro/connection/manager.rb +3 -4
  88. data/lib/karafka/pro/connection/multiplexing/listener.rb +1 -0
  89. data/lib/karafka/pro/contracts/base.rb +1 -1
  90. data/lib/karafka/pro/encryption/cipher.rb +3 -2
  91. data/lib/karafka/pro/encryption/contracts/config.rb +5 -7
  92. data/lib/karafka/pro/encryption/messages/parser.rb +4 -4
  93. data/lib/karafka/pro/encryption/setup/config.rb +1 -1
  94. data/lib/karafka/pro/instrumentation/performance_tracker.rb +3 -3
  95. data/lib/karafka/pro/iterator/expander.rb +1 -1
  96. data/lib/karafka/pro/iterator/tpl_builder.rb +2 -2
  97. data/lib/karafka/pro/iterator.rb +3 -3
  98. data/lib/karafka/pro/loader.rb +1 -1
  99. data/lib/karafka/pro/processing/coordinator.rb +1 -1
  100. data/lib/karafka/pro/processing/coordinators/errors_tracker.rb +2 -3
  101. data/lib/karafka/pro/processing/coordinators/filters_applier.rb +3 -3
  102. data/lib/karafka/pro/processing/filters/base.rb +1 -0
  103. data/lib/karafka/pro/processing/filters/delayer.rb +1 -1
  104. data/lib/karafka/pro/processing/filters/expirer.rb +1 -1
  105. data/lib/karafka/pro/processing/filters/inline_insights_delayer.rb +1 -1
  106. data/lib/karafka/pro/processing/filters/throttler.rb +1 -1
  107. data/lib/karafka/pro/processing/jobs/consume_non_blocking.rb +1 -1
  108. data/lib/karafka/pro/processing/jobs/eofed_non_blocking.rb +1 -1
  109. data/lib/karafka/pro/processing/jobs/periodic.rb +1 -1
  110. data/lib/karafka/pro/processing/jobs/revoked_non_blocking.rb +1 -1
  111. data/lib/karafka/pro/processing/jobs_builder.rb +1 -1
  112. data/lib/karafka/pro/processing/offset_metadata/fetcher.rb +1 -0
  113. data/lib/karafka/pro/processing/partitioner.rb +1 -1
  114. data/lib/karafka/pro/processing/schedulers/default.rb +2 -4
  115. data/lib/karafka/pro/processing/strategies/base.rb +1 -1
  116. data/lib/karafka/pro/processing/strategies/default.rb +2 -2
  117. data/lib/karafka/pro/processing/strategies/lrj/default.rb +2 -4
  118. data/lib/karafka/pro/processing/strategies/vp/default.rb +2 -4
  119. data/lib/karafka/pro/processing/strategy_selector.rb +1 -0
  120. data/lib/karafka/pro/processing/subscription_groups_coordinator.rb +2 -3
  121. data/lib/karafka/pro/processing/virtual_partitions/distributors/balanced.rb +4 -2
  122. data/lib/karafka/pro/processing/virtual_partitions/distributors/consistent.rb +4 -2
  123. data/lib/karafka/pro/recurring_tasks/consumer.rb +3 -2
  124. data/lib/karafka/pro/recurring_tasks/contracts/config.rb +4 -6
  125. data/lib/karafka/pro/recurring_tasks/contracts/task.rb +3 -5
  126. data/lib/karafka/pro/recurring_tasks/deserializer.rb +1 -1
  127. data/lib/karafka/pro/recurring_tasks/dispatcher.rb +7 -6
  128. data/lib/karafka/pro/recurring_tasks/executor.rb +2 -1
  129. data/lib/karafka/pro/recurring_tasks/schedule.rb +9 -8
  130. data/lib/karafka/pro/recurring_tasks/serializer.rb +6 -5
  131. data/lib/karafka/pro/recurring_tasks/setup/config.rb +2 -2
  132. data/lib/karafka/pro/recurring_tasks/task.rb +1 -1
  133. data/lib/karafka/pro/recurring_tasks.rb +8 -5
  134. data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +2 -4
  135. data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +2 -4
  136. data/lib/karafka/pro/routing/features/dead_letter_queue/topic.rb +3 -0
  137. data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +2 -4
  138. data/lib/karafka/pro/routing/features/delaying/topic.rb +2 -4
  139. data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +4 -8
  140. data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +5 -7
  141. data/lib/karafka/pro/routing/features/direct_assignments/subscription_group.rb +7 -6
  142. data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +2 -2
  143. data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +2 -4
  144. data/lib/karafka/pro/routing/features/expiring/topic.rb +2 -4
  145. data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +2 -4
  146. data/lib/karafka/pro/routing/features/filtering/topic.rb +2 -3
  147. data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +2 -4
  148. data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +2 -4
  149. data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +3 -5
  150. data/lib/karafka/pro/routing/features/multiplexing/subscription_groups_builder.rb +1 -1
  151. data/lib/karafka/pro/routing/features/multiplexing.rb +5 -5
  152. data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +3 -3
  153. data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +2 -4
  154. data/lib/karafka/pro/routing/features/offset_metadata.rb +4 -4
  155. data/lib/karafka/pro/routing/features/parallel_segments/builder.rb +1 -1
  156. data/lib/karafka/pro/routing/features/parallel_segments/contracts/consumer_group.rb +2 -4
  157. data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +3 -5
  158. data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +2 -4
  159. data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +2 -4
  160. data/lib/karafka/pro/routing/features/patterns/patterns.rb +1 -1
  161. data/lib/karafka/pro/routing/features/pausing/config.rb +26 -0
  162. data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +17 -11
  163. data/lib/karafka/pro/routing/features/pausing/topic.rb +69 -8
  164. data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +2 -4
  165. data/lib/karafka/pro/routing/features/periodic_job/topic.rb +1 -1
  166. data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +1 -1
  167. data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +2 -4
  168. data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +2 -4
  169. data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +2 -4
  170. data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +6 -8
  171. data/lib/karafka/pro/routing/features/swarm.rb +1 -1
  172. data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +2 -4
  173. data/lib/karafka/pro/routing/features/throttling/topic.rb +3 -1
  174. data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +2 -4
  175. data/lib/karafka/pro/scheduled_messages/consumer.rb +1 -1
  176. data/lib/karafka/pro/scheduled_messages/contracts/config.rb +4 -6
  177. data/lib/karafka/pro/scheduled_messages/contracts/message.rb +3 -5
  178. data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +3 -2
  179. data/lib/karafka/pro/scheduled_messages/day.rb +1 -0
  180. data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +1 -1
  181. data/lib/karafka/pro/scheduled_messages/deserializers/payload.rb +1 -1
  182. data/lib/karafka/pro/scheduled_messages/max_epoch.rb +1 -0
  183. data/lib/karafka/pro/scheduled_messages/proxy.rb +1 -1
  184. data/lib/karafka/pro/scheduled_messages/serializer.rb +3 -3
  185. data/lib/karafka/pro/scheduled_messages/setup/config.rb +2 -2
  186. data/lib/karafka/pro/scheduled_messages/state.rb +1 -0
  187. data/lib/karafka/pro/scheduled_messages/tracker.rb +1 -0
  188. data/lib/karafka/pro/scheduled_messages.rb +4 -6
  189. data/lib/karafka/pro/swarm/liveness_listener.rb +2 -2
  190. data/lib/karafka/process.rb +4 -4
  191. data/lib/karafka/processing/coordinator.rb +2 -4
  192. data/lib/karafka/processing/coordinators_buffer.rb +2 -3
  193. data/lib/karafka/processing/executor.rb +3 -4
  194. data/lib/karafka/processing/inline_insights/tracker.rb +1 -0
  195. data/lib/karafka/processing/jobs/base.rb +2 -3
  196. data/lib/karafka/processing/jobs_queue.rb +1 -1
  197. data/lib/karafka/processing/result.rb +1 -0
  198. data/lib/karafka/processing/strategy_selector.rb +1 -0
  199. data/lib/karafka/processing/workers_batch.rb +2 -3
  200. data/lib/karafka/railtie.rb +1 -0
  201. data/lib/karafka/routing/activity_manager.rb +3 -2
  202. data/lib/karafka/routing/builder.rb +8 -8
  203. data/lib/karafka/routing/consumer_group.rb +4 -6
  204. data/lib/karafka/routing/contracts/consumer_group.rb +6 -7
  205. data/lib/karafka/routing/contracts/routing.rb +2 -4
  206. data/lib/karafka/routing/contracts/topic.rb +7 -6
  207. data/lib/karafka/routing/features/active_job/contracts/topic.rb +2 -4
  208. data/lib/karafka/routing/features/active_job/topic.rb +6 -0
  209. data/lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb +3 -5
  210. data/lib/karafka/routing/features/declaratives/contracts/topic.rb +3 -5
  211. data/lib/karafka/routing/features/declaratives/topic.rb +5 -2
  212. data/lib/karafka/routing/features/deserializers/contracts/topic.rb +2 -4
  213. data/lib/karafka/routing/features/deserializers/topic.rb +3 -3
  214. data/lib/karafka/routing/features/eofed/contracts/topic.rb +2 -4
  215. data/lib/karafka/routing/features/inline_insights/contracts/topic.rb +2 -4
  216. data/lib/karafka/routing/features/inline_insights.rb +5 -5
  217. data/lib/karafka/routing/features/manual_offset_management/contracts/topic.rb +2 -4
  218. data/lib/karafka/routing/router.rb +1 -1
  219. data/lib/karafka/routing/subscription_group.rb +1 -1
  220. data/lib/karafka/routing/subscription_groups_builder.rb +1 -0
  221. data/lib/karafka/routing/topic.rb +3 -3
  222. data/lib/karafka/routing/topics.rb +4 -9
  223. data/lib/karafka/server.rb +2 -2
  224. data/lib/karafka/setup/attributes_map.rb +4 -2
  225. data/lib/karafka/setup/config.rb +85 -17
  226. data/lib/karafka/setup/config_proxy.rb +209 -0
  227. data/lib/karafka/setup/contracts/config.rb +13 -11
  228. data/lib/karafka/setup/defaults_injector.rb +3 -2
  229. data/lib/karafka/setup/dsl.rb +2 -3
  230. data/lib/karafka/swarm/liveness_listener.rb +3 -3
  231. data/lib/karafka/swarm/manager.rb +7 -6
  232. data/lib/karafka/swarm/node.rb +1 -1
  233. data/lib/karafka/swarm/supervisor.rb +2 -1
  234. data/lib/karafka/time_trackers/base.rb +1 -1
  235. data/lib/karafka/version.rb +1 -1
  236. data/lib/karafka.rb +4 -4
  237. metadata +14 -6
  238. data/.diffend.yml +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb41b6fee168ce7585a82c29f8053391ebca63ae3416f4280456f6caeab316a2
4
- data.tar.gz: 0dbb438af65380581bd0501793d645195359232c9ada649b63e17c9269c95002
3
+ metadata.gz: d7b2a6d732bc69e537d14e306a4edc922b6375aa0154dada74527b06efea34fa
4
+ data.tar.gz: 2e6c1f533f706d70699db822d6d34eac5b6df0c0275bc12366238cc7316a3793
5
5
  SHA512:
6
- metadata.gz: 4862117c97a174e43708fb7e163ab60222a0199b109ca194a172995928968a2799ea5bc39151cee55b0c67a6138f1cdf89e5566a5136f584540ffa0bad4248f3
7
- data.tar.gz: d0ea2ddbe22b2a85afa77629d68c2af70685fd390d9b3bf87a461d04929cfc3855d40e4c25e57e02d4b78c32107c435e3d039edd9d64feb85f8057e674e77f02
6
+ metadata.gz: c760fb9e76f6e3af5421cfc0d821d03c3c845c629ea4ab1b2bcfa89c50431320b5cada72482eb48dfc9c27718631e1920ca5133ccd3884daddbc84cc6a7288e7
7
+ data.tar.gz: ce5466e71edc225b9e11283be5f7e1f877f6222a766dd63f69a235a0739a812f5007da341f5010a71eb2322efebb400fa441a7188f41ac6c244acade0b37c4e4
@@ -18,28 +18,6 @@ env:
18
18
  BUNDLE_JOBS: 4
19
19
 
20
20
  jobs:
21
- diffend:
22
- runs-on: ubuntu-latest
23
- timeout-minutes: 5
24
- strategy:
25
- fail-fast: false
26
- steps:
27
- - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
28
- with:
29
- fetch-depth: 0
30
-
31
- - name: Set up Ruby
32
- uses: ruby/setup-ruby@cf7216d52fba1017929b4d7162fabe2b30af5b49 # v1.262.0
33
- with:
34
- ruby-version: 3.4
35
- bundler-cache: true
36
-
37
- - name: Install Diffend plugin
38
- run: bundle plugin install diffend
39
-
40
- - name: Bundle Secure
41
- run: bundle secure
42
-
43
21
  karafka-checksum:
44
22
  runs-on: ubuntu-latest
45
23
  timeout-minutes: 5
@@ -82,12 +60,28 @@ jobs:
82
60
  - name: Run Coditsu
83
61
  run: ./coditsu_script.sh
84
62
 
63
+ yard-lint:
64
+ runs-on: ubuntu-latest
65
+ timeout-minutes: 5
66
+ strategy:
67
+ fail-fast: false
68
+ steps:
69
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
70
+ with:
71
+ fetch-depth: 0
72
+ - name: Set up Ruby
73
+ uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
74
+ with:
75
+ ruby-version: '3.4.7'
76
+ bundler-cache: true
77
+ - name: Run yard-lint
78
+ run: bundle exec yard-lint lib/
79
+
85
80
  # We do not split RSpec specs to OSS and Pro like integrations because they do not overload
86
81
  # Kafka heavily, compute total coverage for specs and are fast enough
87
82
  specs:
88
83
  timeout-minutes: 15
89
84
  runs-on: ubuntu-latest
90
- needs: diffend
91
85
  env:
92
86
  BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
93
87
  strategy:
@@ -118,7 +112,7 @@ jobs:
118
112
  run: rm -f Gemfile.lock
119
113
 
120
114
  - name: Set up Ruby
121
- uses: ruby/setup-ruby@cf7216d52fba1017929b4d7162fabe2b30af5b49 # v1.262.0
115
+ uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
122
116
  with:
123
117
  ruby-version: ${{matrix.ruby}}
124
118
  bundler-cache: true
@@ -142,7 +136,6 @@ jobs:
142
136
  integrations_oss:
143
137
  timeout-minutes: 30
144
138
  runs-on: ubuntu-latest
145
- needs: diffend
146
139
  env:
147
140
  BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
148
141
  strategy:
@@ -169,7 +162,7 @@ jobs:
169
162
  docker compose up -d || (sleep 5 && docker compose up -d)
170
163
 
171
164
  - name: Set up Ruby
172
- uses: ruby/setup-ruby@cf7216d52fba1017929b4d7162fabe2b30af5b49 # v1.262.0
165
+ uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
173
166
  with:
174
167
  # Do not use cache here as we run bundle install also later in some of the integration
175
168
  # tests and we need to be able to run it without cache
@@ -214,7 +207,6 @@ jobs:
214
207
  integrations_pro:
215
208
  timeout-minutes: 45
216
209
  runs-on: ubuntu-latest
217
- needs: diffend
218
210
  env:
219
211
  BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
220
212
  strategy:
@@ -241,7 +233,7 @@ jobs:
241
233
  docker compose up -d || (sleep 5 && docker compose up -d)
242
234
 
243
235
  - name: Set up Ruby
244
- uses: ruby/setup-ruby@cf7216d52fba1017929b4d7162fabe2b30af5b49 # v1.262.0
236
+ uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
245
237
  with:
246
238
  ruby-version: ${{matrix.ruby}}
247
239
  bundler: 'latest'
@@ -288,9 +280,9 @@ jobs:
288
280
  runs-on: ubuntu-latest
289
281
  if: always()
290
282
  needs:
291
- - diffend
292
283
  - karafka-checksum
293
284
  - coditsu
285
+ - yard-lint
294
286
  - specs
295
287
  - integrations_oss
296
288
  - integrations_pro
@@ -117,7 +117,7 @@ jobs:
117
117
  run: rm -f Gemfile.lock
118
118
 
119
119
  - name: Set up Ruby
120
- uses: ruby/setup-ruby@cf7216d52fba1017929b4d7162fabe2b30af5b49 # v1.262.0
120
+ uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
121
121
  with:
122
122
  ruby-version: ${{ matrix.ruby }}
123
123
  bundler-cache: true
@@ -24,7 +24,7 @@ jobs:
24
24
  fetch-depth: 0
25
25
 
26
26
  - name: Set up Ruby
27
- uses: ruby/setup-ruby@cf7216d52fba1017929b4d7162fabe2b30af5b49 # v1.262.0
27
+ uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
28
28
  with:
29
29
  bundler-cache: false
30
30
 
@@ -32,4 +32,4 @@ jobs:
32
32
  run: |
33
33
  bundle install --jobs 4 --retry 3
34
34
 
35
- - uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
35
+ - uses: rubygems/release-gem@1c162a739e8b4cb21a676e97b087e8268d8fc40b # v1.1.2
@@ -13,7 +13,7 @@ jobs:
13
13
  if: github.repository_owner == 'karafka'
14
14
  steps:
15
15
  - name: Trigger wiki refresh
16
- uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0
16
+ uses: peter-evans/repository-dispatch@5fc4efd1a4797ddb68ffd0714a238564e4cc0e6f # v4.0.0
17
17
  with:
18
18
  token: ${{ secrets.WIKI_REPO_TOKEN }}
19
19
  repository: karafka/wiki
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.6
1
+ 3.4.7
data/.yard-lint.yml ADDED
@@ -0,0 +1,174 @@
1
+ # YARD-Lint Configuration
2
+ # See https://github.com/mensfeld/yard-lint for documentation
3
+
4
+ # Global settings for all validators
5
+ AllValidators:
6
+ # YARD command-line options (applied to all validators by default)
7
+ YardOptions:
8
+ - --private
9
+ - --protected
10
+
11
+ # Global file exclusion patterns
12
+ Exclude:
13
+ - '\.git'
14
+ - 'vendor/**/*'
15
+ - 'node_modules/**/*'
16
+ - 'spec/**/*'
17
+ - 'test/**/*'
18
+
19
+ # Exit code behavior (error, warning, convention, never)
20
+ FailOnSeverity: error
21
+
22
+ # Minimum documentation coverage percentage (0-100)
23
+ # Fails if coverage is below this threshold
24
+ MinCoverage: 99.0
25
+
26
+ # Diff mode settings
27
+ DiffMode:
28
+ # Default base ref for --diff (auto-detects main/master if not specified)
29
+ DefaultBaseRef: ~
30
+
31
+ # Documentation validators
32
+ Documentation/UndocumentedObjects:
33
+ Description: 'Checks for classes, modules, and methods without documentation.'
34
+ Enabled: true
35
+ Severity: error
36
+ ExcludedMethods:
37
+ - 'initialize/0' # Exclude parameter-less initialize
38
+ - '/^_/' # Exclude private methods (by convention)
39
+
40
+ Documentation/UndocumentedMethodArguments:
41
+ Description: 'Checks for method parameters without @param tags.'
42
+ Enabled: true
43
+ Severity: error
44
+
45
+ Documentation/UndocumentedBooleanMethods:
46
+ Description: 'Checks that question mark methods document their boolean return.'
47
+ Enabled: true
48
+ Severity: error
49
+
50
+ Documentation/UndocumentedOptions:
51
+ Description: 'Detects methods with options hash parameters but no @option tags.'
52
+ Enabled: true
53
+ Severity: error
54
+
55
+ Documentation/MarkdownSyntax:
56
+ Description: 'Detects common markdown syntax errors in documentation.'
57
+ Enabled: true
58
+ Severity: error
59
+
60
+ # Tags validators
61
+ Tags/Order:
62
+ Description: 'Enforces consistent ordering of YARD tags.'
63
+ Enabled: true
64
+ Severity: error
65
+ EnforcedOrder:
66
+ - param
67
+ - option
68
+ - return
69
+ - raise
70
+ - example
71
+
72
+ Tags/InvalidTypes:
73
+ Description: 'Validates type definitions in @param, @return, @option tags.'
74
+ Enabled: true
75
+ Severity: error
76
+ ValidatedTags:
77
+ - param
78
+ - option
79
+ - return
80
+
81
+ Tags/TypeSyntax:
82
+ Description: 'Validates YARD type syntax using YARD parser.'
83
+ Enabled: true
84
+ Severity: error
85
+ ValidatedTags:
86
+ - param
87
+ - option
88
+ - return
89
+ - yieldreturn
90
+
91
+ Tags/MeaninglessTag:
92
+ Description: 'Detects @param/@option tags on classes, modules, or constants.'
93
+ Enabled: true
94
+ Severity: error
95
+ CheckedTags:
96
+ - param
97
+ - option
98
+ InvalidObjectTypes:
99
+ - class
100
+ - module
101
+ - constant
102
+
103
+ Tags/CollectionType:
104
+ Description: 'Validates Hash collection syntax consistency.'
105
+ Enabled: true
106
+ Severity: error
107
+ EnforcedStyle: long # 'long' for Hash{K => V} (YARD standard), 'short' for {K => V}
108
+ ValidatedTags:
109
+ - param
110
+ - option
111
+ - return
112
+ - yieldreturn
113
+
114
+ Tags/TagTypePosition:
115
+ Description: 'Validates type annotation position in tags.'
116
+ Enabled: true
117
+ Severity: error
118
+ CheckedTags:
119
+ - param
120
+ - option
121
+ # EnforcedStyle: 'type_after_name' (YARD standard: @param name [Type])
122
+ # or 'type_first' (@param [Type] name)
123
+ EnforcedStyle: type_after_name
124
+
125
+ Tags/ApiTags:
126
+ Description: 'Enforces @api tags on public objects.'
127
+ Enabled: false # Opt-in validator
128
+ Severity: error
129
+ AllowedApis:
130
+ - public
131
+ - private
132
+ - internal
133
+
134
+ Tags/OptionTags:
135
+ Description: 'Requires @option tags for methods with options parameters.'
136
+ Enabled: true
137
+ Severity: error
138
+
139
+ # Warnings validators - catches YARD parser errors
140
+ Warnings/UnknownTag:
141
+ Description: 'Detects unknown YARD tags.'
142
+ Enabled: true
143
+ Severity: error
144
+
145
+ Warnings/UnknownDirective:
146
+ Description: 'Detects unknown YARD directives.'
147
+ Enabled: true
148
+ Severity: error
149
+
150
+ Warnings/InvalidTagFormat:
151
+ Description: 'Detects malformed tag syntax.'
152
+ Enabled: true
153
+ Severity: error
154
+
155
+ Warnings/InvalidDirectiveFormat:
156
+ Description: 'Detects malformed directive syntax.'
157
+ Enabled: true
158
+ Severity: error
159
+
160
+ Warnings/DuplicatedParameterName:
161
+ Description: 'Detects duplicate @param tags.'
162
+ Enabled: true
163
+ Severity: error
164
+
165
+ Warnings/UnknownParameterName:
166
+ Description: 'Detects @param tags for non-existent parameters.'
167
+ Enabled: true
168
+ Severity: error
169
+
170
+ # Semantic validators
171
+ Semantic/AbstractMethods:
172
+ Description: 'Ensures @abstract methods do not have real implementations.'
173
+ Enabled: true
174
+ Severity: error
data/CHANGELOG.md CHANGED
@@ -1,7 +1,23 @@
1
1
  # Karafka Framework Changelog
2
2
 
3
+ ## 2.5.3 (2025-11-14)
4
+ - [Enhancement] Dynamically support `librdkafka` fatal errors with correct reported details.
5
+ - [Enhancement] Add `producer` block API to setup for simplified WaterDrop producer configuration without manual producer instance creation, using a transparent ConfigProxy during setup to avoid polluting the permanent config API.
6
+ - [Change] Require `waterdrop` `>=` `2.8.14` to support new features.
7
+ - [Change] Require `karafka-rdkafka` `>=` `0.23.1` to support new rebalance protocol.
8
+
9
+ ## 2.5.2 (2025-10-31)
10
+ - **[EOL]** Remove Rails 7.1 support according to EOL while not blocking Rails 7.1 usage.
11
+ - [Enhancement] Retry on the KIP-848 `stale_member_epoch` error.
12
+ - [Enhancement] Provide `Karafka::Admin.trigger_rebalance` API to programmatically trigger consumer group rebalances for operational purposes.
13
+ - [Enhancement] Nest pause configuration under `config.pause.*` namespace (`config.pause.timeout`, `config.pause.max_timeout`, `config.pause.with_exponential_backoff`) while maintaining backwards compatibility with the old flat API (`config.pause_timeout`, etc.) via delegation methods that will be removed in Karafka 2.6.
14
+ - [Enhancement] Detect and track involuntary assignment loss during long-running processing that exceeds `max.poll.interval.ms` via `client.events_poll` event and automatically update `Karafka::App.assignments` to reflect reality.
15
+ - [Enhancement] Extend `Karafka::Admin.read_watermark_offsets` to accept either a single topic with partition or a hash of multiple topics with partitions, using a single consumer instance for improved efficiency when querying multiple partitions.
16
+ - [Enhancement] Add configurable `Karafka::ActiveJob::Deserializer` to support custom serialization formats (Avro, Protobuf, etc.) for ActiveJob payloads.
17
+ - [Fix] Fix ActiveJob Continuation invalid class reference bug.
18
+
3
19
  ## 2.5.1 (2025-09-29)
4
- - **[Breaking]** Remove Ruby 3.1 support according to EOL.
20
+ - **[EOL]** Remove Ruby 3.1 support according to EOL.
5
21
  - **[Feature]** Support Swarm mode on MacOS.
6
22
  - [Enhancement] Support past `dispatch_at` times with `jitter: 0` in the OSS Karafka to support ActiveJob continuation.
7
23
  - [Enhancement] Use direct topic dispatches when `dispatch_at` is used for past times to bypass Scheduled Messages flow.
@@ -32,7 +48,7 @@
32
48
  - [Change] Require `karafka-rdkafka` `>=` `0.22.0` to support new features and require SSL-bug free version.
33
49
  - [Change] Remove no longer needed `cooperative.sticky` rebalance patch.
34
50
  - [Change] Normalize how libs and deps are required (no functional change for the end user)
35
- - [Change] Remove Ruby `3.1` specs according to the EOL schedule.
51
+ - **[EOL]** Remove Ruby `3.1` specs according to the EOL schedule.
36
52
 
37
53
  ## 2.5.0 (2025-06-15)
38
54
  - **[Breaking]** Change how consistency of DLQ dispatches works in Pro (`partition_key` vs. direct partition id mapping).
@@ -88,7 +104,7 @@
88
104
  - [Maintenance] Lower the `Karafka::Admin` `poll_timeout` to 50 ms to improve responsiveness of admin operations.
89
105
  - [Maintenance] Require `karafka-rdkafka` `>=` `0.19.5` due to usage of `#rd_kafka_global_init`, KIP-82, new producer caching engine and improvements to the `partition_key` assignments.
90
106
  - [Maintenance] Add Deimos routing patch into integration suite not to break it in the future.
91
- - [Maintenance] Remove Rails `7.0` specs due to upcoming EOL.
107
+ - **[EOL]** Remove Rails `7.0` specs due to upcoming EOL.
92
108
  - [Fix] Fix Recurring Tasks and Scheduled Messages not working with Swarm (using closed producer).
93
109
  - [Fix] Fix a case where `unknown_topic_or_part` error could leak out of the consumer on consumer shutdown.
94
110
  - [Fix] Fix missing `virtual_partitions.partitioner.error` custom error logging in the `LoggerListener`.
@@ -254,7 +270,7 @@
254
270
 
255
271
  This release contains **BREAKING** changes. Make sure to read and apply upgrade notes.
256
272
 
257
- - **[Breaking]** Drop Ruby `2.7` support.
273
+ - **[EOL]** Drop Ruby `2.7` support.
258
274
  - **[Breaking]** Drop the concept of consumer group mapping.
259
275
  - **[Breaking]** `karafka topics migrate` will now perform declarative topics configuration alignment.
260
276
  - **[Breaking]** Replace `deserializer` config with `#deserializers` in routing to support key and lazy header deserializers.
data/Gemfile CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- plugin 'diffend'
6
-
7
5
  gemspec
8
6
 
9
7
  # Karafka gem does not require activejob, karafka-web or fugit to work
@@ -27,4 +25,5 @@ group :test do
27
25
  gem 'factory_bot'
28
26
  gem 'ostruct'
29
27
  gem 'simplecov'
28
+ gem 'yard-lint'
30
29
  end
data/Gemfile.lock CHANGED
@@ -1,35 +1,34 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- karafka (2.5.1)
4
+ karafka (2.5.3)
5
5
  base64 (~> 0.2)
6
6
  karafka-core (>= 2.5.6, < 2.6.0)
7
- karafka-rdkafka (>= 0.22.0)
8
- waterdrop (>= 2.8.9, < 3.0.0)
7
+ karafka-rdkafka (>= 0.23.1)
8
+ waterdrop (>= 2.8.14, < 3.0.0)
9
9
  zeitwerk (~> 2.3)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- activejob (8.0.3)
15
- activesupport (= 8.0.3)
14
+ activejob (8.1.1)
15
+ activesupport (= 8.1.1)
16
16
  globalid (>= 0.3.6)
17
- activesupport (8.0.3)
17
+ activesupport (8.1.1)
18
18
  base64
19
- benchmark (>= 0.3)
20
19
  bigdecimal
21
20
  concurrent-ruby (~> 1.0, >= 1.3.1)
22
21
  connection_pool (>= 2.2.5)
23
22
  drb
24
23
  i18n (>= 1.6, < 2)
24
+ json
25
25
  logger (>= 1.4.2)
26
26
  minitest (>= 5.1)
27
27
  securerandom (>= 0.3)
28
28
  tzinfo (~> 2.0, >= 2.0.5)
29
29
  uri (>= 0.13.1)
30
30
  base64 (0.3.0)
31
- benchmark (0.4.1)
32
- bigdecimal (3.2.3)
31
+ bigdecimal (3.3.1)
33
32
  byebug (12.0.0)
34
33
  concurrent-ruby (1.3.5)
35
34
  connection_pool (2.5.4)
@@ -37,9 +36,9 @@ GEM
37
36
  docile (1.4.1)
38
37
  drb (2.2.3)
39
38
  erubi (1.13.1)
40
- et-orbi (1.3.0)
39
+ et-orbi (1.4.0)
41
40
  tzinfo
42
- factory_bot (6.5.5)
41
+ factory_bot (6.5.6)
43
42
  activesupport (>= 6.1.0)
44
43
  ffi (1.17.2)
45
44
  ffi (1.17.2-aarch64-linux-gnu)
@@ -52,78 +51,78 @@ GEM
52
51
  ffi (1.17.2-x86_64-darwin)
53
52
  ffi (1.17.2-x86_64-linux-gnu)
54
53
  ffi (1.17.2-x86_64-linux-musl)
55
- fugit (1.11.2)
56
- et-orbi (~> 1, >= 1.2.11)
54
+ fugit (1.12.1)
55
+ et-orbi (~> 1.4)
57
56
  raabro (~> 1.4)
58
- globalid (1.2.1)
57
+ globalid (1.3.0)
59
58
  activesupport (>= 6.1)
60
59
  i18n (1.14.7)
61
60
  concurrent-ruby (~> 1.0)
62
- json (2.15.0)
61
+ json (2.15.2)
63
62
  karafka-core (2.5.7)
64
63
  karafka-rdkafka (>= 0.20.0)
65
64
  logger (>= 1.6.0)
66
- karafka-rdkafka (0.22.0)
67
- ffi (~> 1.15)
65
+ karafka-rdkafka (0.23.1)
66
+ ffi (~> 1.17.1)
68
67
  json (> 2.0)
69
68
  logger
70
69
  mini_portile2 (~> 2.6)
71
70
  rake (> 12)
72
- karafka-rdkafka (0.22.0-aarch64-linux-gnu)
73
- ffi (~> 1.15)
71
+ karafka-rdkafka (0.23.1-aarch64-linux-gnu)
72
+ ffi (~> 1.17.1)
74
73
  json (> 2.0)
75
74
  logger
76
75
  mini_portile2 (~> 2.6)
77
76
  rake (> 12)
78
- karafka-rdkafka (0.22.0-arm64-darwin)
79
- ffi (~> 1.15)
77
+ karafka-rdkafka (0.23.1-arm64-darwin)
78
+ ffi (~> 1.17.1)
80
79
  json (> 2.0)
81
80
  logger
82
81
  mini_portile2 (~> 2.6)
83
82
  rake (> 12)
84
- karafka-rdkafka (0.22.0-x86_64-linux-gnu)
85
- ffi (~> 1.15)
83
+ karafka-rdkafka (0.23.1-x86_64-linux-gnu)
84
+ ffi (~> 1.17.1)
86
85
  json (> 2.0)
87
86
  logger
88
87
  mini_portile2 (~> 2.6)
89
88
  rake (> 12)
90
- karafka-rdkafka (0.22.0-x86_64-linux-musl)
91
- ffi (~> 1.15)
89
+ karafka-rdkafka (0.23.1-x86_64-linux-musl)
90
+ ffi (~> 1.17.1)
92
91
  json (> 2.0)
93
92
  logger
94
93
  mini_portile2 (~> 2.6)
95
94
  rake (> 12)
96
- karafka-testing (2.5.3)
97
- karafka (>= 2.5.0.beta1, < 2.6.0)
95
+ karafka-testing (2.5.4)
96
+ karafka (>= 2.5.0, < 2.6.0)
98
97
  waterdrop (>= 2.8.0)
99
- karafka-web (0.11.2)
98
+ karafka-web (0.11.4)
100
99
  erubi (~> 1.4)
101
- karafka (>= 2.5.0.rc2, < 2.6.0)
100
+ karafka (>= 2.5.2, < 2.6.0)
102
101
  karafka-core (>= 2.5.0, < 2.6.0)
103
102
  roda (~> 3.68, >= 3.69)
104
103
  tilt (~> 2.0)
105
104
  logger (1.7.0)
106
105
  mini_portile2 (2.8.9)
107
- minitest (5.25.5)
106
+ minitest (5.26.0)
108
107
  ostruct (0.6.3)
109
108
  raabro (1.4.0)
110
- rack (3.2.1)
111
- rake (13.3.0)
112
- roda (3.95.0)
109
+ rack (3.2.3)
110
+ rake (13.3.1)
111
+ roda (3.97.0)
113
112
  rack
114
- rspec (3.13.1)
113
+ rspec (3.13.2)
115
114
  rspec-core (~> 3.13.0)
116
115
  rspec-expectations (~> 3.13.0)
117
116
  rspec-mocks (~> 3.13.0)
118
- rspec-core (3.13.5)
117
+ rspec-core (3.13.6)
119
118
  rspec-support (~> 3.13.0)
120
119
  rspec-expectations (3.13.5)
121
120
  diff-lcs (>= 1.2.0, < 2.0)
122
121
  rspec-support (~> 3.13.0)
123
- rspec-mocks (3.13.5)
122
+ rspec-mocks (3.13.6)
124
123
  diff-lcs (>= 1.2.0, < 2.0)
125
124
  rspec-support (~> 3.13.0)
126
- rspec-support (3.13.5)
125
+ rspec-support (3.13.6)
127
126
  securerandom (0.4.1)
128
127
  simplecov (0.22.0)
129
128
  docile (~> 1.1)
@@ -131,16 +130,20 @@ GEM
131
130
  simplecov_json_formatter (~> 0.1)
132
131
  simplecov-html (0.13.2)
133
132
  simplecov_json_formatter (0.1.4)
134
- stringio (3.1.7)
133
+ stringio (3.1.8)
135
134
  tilt (2.6.1)
136
135
  tzinfo (2.0.6)
137
136
  concurrent-ruby (~> 1.0)
138
- uri (1.0.3)
137
+ uri (1.0.4)
139
138
  warning (1.5.0)
140
- waterdrop (2.8.10)
139
+ waterdrop (2.8.14)
141
140
  karafka-core (>= 2.4.9, < 3.0.0)
142
- karafka-rdkafka (>= 0.20.0)
141
+ karafka-rdkafka (>= 0.23.1)
143
142
  zeitwerk (~> 2.3)
143
+ yard (0.9.37)
144
+ yard-lint (1.2.3)
145
+ yard (~> 0.9)
146
+ zeitwerk (~> 2.6)
144
147
  zeitwerk (2.7.3)
145
148
 
146
149
  PLATFORMS
@@ -169,6 +172,7 @@ DEPENDENCIES
169
172
  simplecov
170
173
  stringio
171
174
  warning
175
+ yard-lint
172
176
 
173
177
  BUNDLED WITH
174
178
  2.7.1
data/bin/integrations CHANGED
@@ -52,7 +52,8 @@ class Scenario
52
52
  'cli/declaratives/delete/existing_with_exit_code_spec.rb' => [2].freeze,
53
53
  'cli/declaratives/create/new_with_exit_code_spec.rb' => [2].freeze,
54
54
  'cli/declaratives/plan/when_changes_with_detailed_exit_code_spec.rb' => [2].freeze,
55
- 'cli/declaratives/align/incorrectly_spec.rb' => [1].freeze
55
+ 'cli/declaratives/align/incorrectly_spec.rb' => [1].freeze,
56
+ 'setup/with_kip_848_protocol_incorrect_config_spec.rb' => [1].freeze
56
57
  }.freeze
57
58
 
58
59
  private_constant :MAX_RUN_TIME, :EXIT_CODES
data/bin/rspecs CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  set -e
4
4
 
5
+ # We remove old coverage because under heavy development and parallel spec execution, the
6
+ # rspec results formatter tends to crash
7
+ rm -rf ./coverage
8
+
5
9
  # Run only regular non-forking specs first
6
10
  SPECS_TYPE=regular bundle exec rspec \
7
11
  --tag ~type:pro \
@@ -11,9 +11,11 @@ en:
11
11
  group_id_format: 'needs to be a string with a Kafka accepted format'
12
12
  concurrency_format: needs to be an integer bigger than 0
13
13
  consumer_persistence_format: needs to be either true or false
14
- pause_timeout_format: needs to be an integer bigger than 0
15
- pause_max_timeout_format: needs to be an integer bigger than 0
16
- pause_with_exponential_backoff_format: needs to be either true or false
14
+
15
+ pause.timeout_format: needs to be an integer bigger than 0
16
+ pause.max_timeout_format: needs to be an integer bigger than 0
17
+ pause.with_exponential_backoff_format: needs to be either true or false
18
+
17
19
  strict_topics_namespacing_format: needs to be either true or false
18
20
  strict_declarative_topics_format: needs to be either true or false
19
21
  shutdown_timeout_format: needs to be an integer bigger than 0
@@ -23,7 +25,7 @@ en:
23
25
  Decrease max_wait_time or increase node_report_timeout
24
26
  kafka_format: needs to be a filled hash
25
27
  key_must_be_a_symbol: All keys under the kafka settings scope need to be symbols
26
- max_timeout_vs_pause_max_timeout: pause_timeout must be less or equal to pause_max_timeout
28
+ pause.timeout_max_timeout_vs_pause_max_timeout: pause.timeout must be less or equal to pause.max_timeout
27
29
  shutdown_timeout_vs_max_wait_time: shutdown_timeout must be more than max_wait_time
28
30
  worker_thread_priority_format: must be between -3 and 3
29
31
 
@@ -31,10 +31,11 @@ en:
31
31
  delaying.delay_format: 'needs to be equal or more than 0 and an integer'
32
32
  delaying.active_format: 'needs to be boolean'
33
33
 
34
- pause_timeout_format: needs to be an integer bigger than 0
35
- pause_max_timeout_format: needs to be an integer bigger than 0
36
- pause_with_exponential_backoff_format: needs to be either true or false
37
- pause_timeout_max_timeout_vs_pause_max_timeout: pause_timeout must be less or equal to pause_max_timeout
34
+ pausing.active_format: 'needs to be boolean'
35
+ pausing.timeout_format: needs to be an integer bigger than 0
36
+ pausing.max_timeout_format: needs to be an integer bigger than 0
37
+ pausing.with_exponential_backoff_format: needs to be either true or false
38
+ pausing.timeout_max_timeout_vs_pause_max_timeout: timeout must be less or equal to max_timeout
38
39
 
39
40
  patterns.active_format: 'needs to be boolean'
40
41
  patterns.type_format: 'needs to be :matcher, :discovered or :regular'
data/docker-compose.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  services:
2
2
  kafka:
3
3
  container_name: kafka
4
- image: confluentinc/cp-kafka:8.0.1
4
+ image: confluentinc/cp-kafka:8.1.0
5
5
 
6
6
  ports:
7
7
  - 9092:9092