karafka 2.5.1.beta1 → 2.5.2
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.
- checksums.yaml +4 -4
- data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +15 -29
- data/.github/workflows/ci_macos_arm64.yml +5 -2
- data/.github/workflows/push.yml +2 -2
- data/.github/workflows/trigger-wiki-refresh.yml +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +22 -5
- data/Gemfile +0 -2
- data/Gemfile.lock +33 -34
- data/LICENSE-COMM +10 -10
- data/README.md +1 -1
- data/bin/integrations +2 -1
- data/bin/rspecs +4 -0
- data/config/locales/errors.yml +6 -4
- data/config/locales/pro_errors.yml +5 -4
- data/docker-compose.yml +1 -1
- data/examples/payloads/json/sample_set_02/download.json +191 -0
- data/examples/payloads/json/sample_set_03/event_type_1.json +18 -0
- data/examples/payloads/json/sample_set_03/event_type_2.json +263 -0
- data/examples/payloads/json/sample_set_03/event_type_3.json +41 -0
- data/karafka.gemspec +4 -4
- data/lib/active_job/queue_adapters/karafka_adapter.rb +1 -1
- data/lib/karafka/active_job/consumer.rb +5 -1
- data/lib/karafka/active_job/current_attributes/job_wrapper.rb +45 -0
- data/lib/karafka/active_job/current_attributes/loading.rb +1 -1
- data/lib/karafka/active_job/current_attributes/persistence.rb +19 -7
- data/lib/karafka/active_job/current_attributes.rb +1 -0
- data/lib/karafka/active_job/deserializer.rb +61 -0
- data/lib/karafka/active_job/dispatcher.rb +32 -12
- data/lib/karafka/active_job/job_options_contract.rb +2 -4
- data/lib/karafka/admin/acl.rb +8 -4
- data/lib/karafka/admin/configs/config.rb +6 -4
- data/lib/karafka/admin/consumer_groups.rb +74 -4
- data/lib/karafka/admin/topics.rb +40 -7
- data/lib/karafka/admin.rb +13 -4
- data/lib/karafka/base_consumer.rb +5 -5
- data/lib/karafka/cli/base.rb +1 -1
- data/lib/karafka/cli/contracts/server.rb +2 -4
- data/lib/karafka/cli/install.rb +1 -1
- data/lib/karafka/cli/server.rb +1 -1
- data/lib/karafka/cli/swarm.rb +1 -1
- data/lib/karafka/cli/topics/align.rb +1 -1
- data/lib/karafka/cli/topics/repartition.rb +2 -2
- data/lib/karafka/connection/client.rb +16 -5
- data/lib/karafka/connection/conductor.rb +1 -1
- data/lib/karafka/connection/listeners_batch.rb +2 -3
- data/lib/karafka/connection/messages_buffer.rb +2 -4
- data/lib/karafka/connection/mode.rb +75 -0
- data/lib/karafka/connection/proxy.rb +11 -7
- data/lib/karafka/embedded.rb +1 -1
- data/lib/karafka/env.rb +1 -2
- data/lib/karafka/execution_mode.rb +103 -0
- data/lib/karafka/helpers/interval_runner.rb +4 -1
- data/lib/karafka/instrumentation/assignments_tracker.rb +17 -0
- data/lib/karafka/instrumentation/monitor.rb +1 -1
- data/lib/karafka/instrumentation/notifications.rb +1 -0
- data/lib/karafka/instrumentation/vendors/appsignal/base.rb +2 -3
- data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +2 -3
- data/lib/karafka/instrumentation/vendors/datadog/metrics_listener.rb +8 -9
- data/lib/karafka/instrumentation/vendors/kubernetes/liveness_listener.rb +2 -3
- data/lib/karafka/messages/builders/batch_metadata.rb +1 -1
- data/lib/karafka/messages/builders/message.rb +1 -1
- data/lib/karafka/messages/messages.rb +2 -3
- data/lib/karafka/patches/rdkafka/bindings.rb +6 -6
- data/lib/karafka/patches/rdkafka/opaque.rb +1 -1
- data/lib/karafka/pro/active_job/dispatcher.rb +7 -3
- data/lib/karafka/pro/active_job/job_options_contract.rb +2 -4
- data/lib/karafka/pro/cleaner/messages/messages.rb +2 -3
- data/lib/karafka/pro/cli/contracts/server.rb +2 -4
- data/lib/karafka/pro/cli/parallel_segments/base.rb +1 -2
- data/lib/karafka/pro/cli/parallel_segments/collapse.rb +2 -2
- data/lib/karafka/pro/cli/parallel_segments/distribute.rb +2 -2
- data/lib/karafka/pro/connection/manager.rb +2 -2
- data/lib/karafka/pro/encryption/contracts/config.rb +4 -6
- data/lib/karafka/pro/encryption/messages/parser.rb +3 -3
- data/lib/karafka/pro/instrumentation/performance_tracker.rb +3 -3
- data/lib/karafka/pro/iterator/expander.rb +1 -1
- data/lib/karafka/pro/iterator/tpl_builder.rb +1 -1
- data/lib/karafka/pro/iterator.rb +2 -2
- data/lib/karafka/pro/processing/coordinators/errors_tracker.rb +2 -3
- data/lib/karafka/pro/processing/coordinators/filters_applier.rb +3 -3
- data/lib/karafka/pro/processing/filters/delayer.rb +1 -1
- data/lib/karafka/pro/processing/filters/expirer.rb +1 -1
- data/lib/karafka/pro/processing/filters/throttler.rb +1 -1
- data/lib/karafka/pro/processing/schedulers/default.rb +2 -4
- data/lib/karafka/pro/processing/strategies/lrj/default.rb +2 -4
- data/lib/karafka/pro/processing/strategies/vp/default.rb +2 -4
- data/lib/karafka/pro/processing/subscription_groups_coordinator.rb +2 -3
- data/lib/karafka/pro/recurring_tasks/contracts/config.rb +2 -4
- data/lib/karafka/pro/recurring_tasks/contracts/task.rb +2 -4
- data/lib/karafka/pro/recurring_tasks/dispatcher.rb +6 -5
- data/lib/karafka/pro/recurring_tasks/schedule.rb +4 -6
- data/lib/karafka/pro/recurring_tasks.rb +8 -5
- data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/delaying/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +4 -8
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +5 -7
- data/lib/karafka/pro/routing/features/direct_assignments/subscription_group.rb +7 -6
- data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/expiring/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/filtering/topic.rb +2 -3
- data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +3 -5
- data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +3 -3
- data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/parallel_segments/contracts/consumer_group.rb +2 -4
- data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +3 -5
- data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +2 -4
- data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/pausing/config.rb +26 -0
- data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +17 -11
- data/lib/karafka/pro/routing/features/pausing/topic.rb +69 -8
- data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +2 -4
- data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +6 -8
- data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +2 -4
- data/lib/karafka/pro/scheduled_messages/contracts/config.rb +2 -4
- data/lib/karafka/pro/scheduled_messages/contracts/message.rb +2 -4
- data/lib/karafka/pro/scheduled_messages.rb +4 -6
- data/lib/karafka/pro/swarm/liveness_listener.rb +2 -2
- data/lib/karafka/processing/coordinator.rb +2 -4
- data/lib/karafka/processing/coordinators_buffer.rb +2 -3
- data/lib/karafka/processing/executor.rb +2 -3
- data/lib/karafka/processing/jobs/base.rb +2 -3
- data/lib/karafka/processing/jobs_queue.rb +1 -1
- data/lib/karafka/processing/workers_batch.rb +2 -3
- data/lib/karafka/railtie.rb +1 -0
- data/lib/karafka/routing/activity_manager.rb +2 -2
- data/lib/karafka/routing/builder.rb +5 -7
- data/lib/karafka/routing/consumer_group.rb +4 -6
- data/lib/karafka/routing/contracts/consumer_group.rb +3 -5
- data/lib/karafka/routing/contracts/routing.rb +2 -4
- data/lib/karafka/routing/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/active_job/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/active_job/topic.rb +6 -0
- data/lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/declaratives/contracts/topic.rb +3 -5
- data/lib/karafka/routing/features/deserializers/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/eofed/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/inline_insights/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/manual_offset_management/contracts/topic.rb +2 -4
- data/lib/karafka/routing/topics.rb +4 -9
- data/lib/karafka/server.rb +18 -6
- data/lib/karafka/setup/config.rb +66 -9
- data/lib/karafka/setup/contracts/config.rb +12 -10
- data/lib/karafka/setup/defaults_injector.rb +3 -2
- data/lib/karafka/setup/dsl.rb +2 -3
- data/lib/karafka/swarm/liveness_listener.rb +2 -3
- data/lib/karafka/swarm/node.rb +1 -1
- data/lib/karafka/swarm/supervisor.rb +2 -2
- data/lib/karafka/version.rb +1 -1
- data/lib/karafka.rb +2 -2
- metadata +15 -8
- data/.diffend.yml +0 -3
- data/lib/karafka/processing/timed_queue.rb +0 -62
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bf868e62a336390b27672a8315accbc535b698cef8e0393a93fbae5e36d3ae87
|
|
4
|
+
data.tar.gz: 1bafbd50c3e3c0544fc36e34a3ce01808eda30df67b991aba63200a9453cdc35
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 57714d5fa6d68c7dde6c911a658793d8898531349922109898038e848cc304ee9316b88023095eb0139b74f8c40a155760e998eb36058e2438d2142c566702fa
|
|
7
|
+
data.tar.gz: ac31c2972452d8a17e8797d403fb247f85f9179373329a0519e5f9caece5eab6f1dcd3465b2eae73f3f452a9e46f6c30616cb0f6e25712b2a3ae239fcc5de698
|
|
@@ -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@44511735964dcb71245e7e55f72539531f7bc0eb # v1.257.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
|
|
@@ -87,7 +65,6 @@ jobs:
|
|
|
87
65
|
specs:
|
|
88
66
|
timeout-minutes: 15
|
|
89
67
|
runs-on: ubuntu-latest
|
|
90
|
-
needs: diffend
|
|
91
68
|
env:
|
|
92
69
|
BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
|
|
93
70
|
strategy:
|
|
@@ -113,8 +90,12 @@ jobs:
|
|
|
113
90
|
run: |
|
|
114
91
|
docker compose up -d || (sleep 5 && docker compose up -d)
|
|
115
92
|
|
|
93
|
+
- name: Remove Gemfile.lock for Ruby dev/preview versions
|
|
94
|
+
if: contains(matrix.ruby, 'dev') || contains(matrix.ruby, 'preview') || contains(matrix.ruby, 'rc')
|
|
95
|
+
run: rm -f Gemfile.lock
|
|
96
|
+
|
|
116
97
|
- name: Set up Ruby
|
|
117
|
-
uses: ruby/setup-ruby@
|
|
98
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
118
99
|
with:
|
|
119
100
|
ruby-version: ${{matrix.ruby}}
|
|
120
101
|
bundler-cache: true
|
|
@@ -138,7 +119,6 @@ jobs:
|
|
|
138
119
|
integrations_oss:
|
|
139
120
|
timeout-minutes: 30
|
|
140
121
|
runs-on: ubuntu-latest
|
|
141
|
-
needs: diffend
|
|
142
122
|
env:
|
|
143
123
|
BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
|
|
144
124
|
strategy:
|
|
@@ -165,7 +145,7 @@ jobs:
|
|
|
165
145
|
docker compose up -d || (sleep 5 && docker compose up -d)
|
|
166
146
|
|
|
167
147
|
- name: Set up Ruby
|
|
168
|
-
uses: ruby/setup-ruby@
|
|
148
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
169
149
|
with:
|
|
170
150
|
# Do not use cache here as we run bundle install also later in some of the integration
|
|
171
151
|
# tests and we need to be able to run it without cache
|
|
@@ -185,6 +165,10 @@ jobs:
|
|
|
185
165
|
chmod -R o-w /opt/hostedtoolcache/Ruby/3*/x64/lib/ruby/gems/3*/gems
|
|
186
166
|
chmod +t /opt/hostedtoolcache/Ruby/3*/x64/lib/ruby/gems/3*/gems
|
|
187
167
|
|
|
168
|
+
- name: Force Ruby platform for ffi gem on dev/preview Ruby
|
|
169
|
+
if: contains(matrix.ruby, 'dev') || contains(matrix.ruby, 'preview') || contains(matrix.ruby, 'rc')
|
|
170
|
+
run: bundle config set force_ruby_platform ffi
|
|
171
|
+
|
|
188
172
|
- name: Bundle install
|
|
189
173
|
run: |
|
|
190
174
|
bundle config set without development
|
|
@@ -206,7 +190,6 @@ jobs:
|
|
|
206
190
|
integrations_pro:
|
|
207
191
|
timeout-minutes: 45
|
|
208
192
|
runs-on: ubuntu-latest
|
|
209
|
-
needs: diffend
|
|
210
193
|
env:
|
|
211
194
|
BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
|
|
212
195
|
strategy:
|
|
@@ -233,7 +216,7 @@ jobs:
|
|
|
233
216
|
docker compose up -d || (sleep 5 && docker compose up -d)
|
|
234
217
|
|
|
235
218
|
- name: Set up Ruby
|
|
236
|
-
uses: ruby/setup-ruby@
|
|
219
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
237
220
|
with:
|
|
238
221
|
ruby-version: ${{matrix.ruby}}
|
|
239
222
|
bundler: 'latest'
|
|
@@ -244,6 +227,10 @@ jobs:
|
|
|
244
227
|
gem update --system
|
|
245
228
|
bundle config set without 'tools benchmarks docs'
|
|
246
229
|
|
|
230
|
+
- name: Force Ruby platform for ffi gem on dev/preview Ruby
|
|
231
|
+
if: contains(matrix.ruby, 'dev') || contains(matrix.ruby, 'preview') || contains(matrix.ruby, 'rc')
|
|
232
|
+
run: bundle config set force_ruby_platform ffi
|
|
233
|
+
|
|
247
234
|
- name: Bundle install
|
|
248
235
|
run: |
|
|
249
236
|
bundle config set without development
|
|
@@ -276,7 +263,6 @@ jobs:
|
|
|
276
263
|
runs-on: ubuntu-latest
|
|
277
264
|
if: always()
|
|
278
265
|
needs:
|
|
279
|
-
- diffend
|
|
280
266
|
- karafka-checksum
|
|
281
267
|
- coditsu
|
|
282
268
|
- specs
|
|
@@ -112,14 +112,17 @@ jobs:
|
|
|
112
112
|
sleep 2
|
|
113
113
|
done
|
|
114
114
|
|
|
115
|
+
- name: Remove Gemfile.lock for Ruby dev/preview versions
|
|
116
|
+
if: contains(matrix.ruby, 'dev') || contains(matrix.ruby, 'preview') || contains(matrix.ruby, 'rc')
|
|
117
|
+
run: rm -f Gemfile.lock
|
|
118
|
+
|
|
115
119
|
- name: Set up Ruby
|
|
116
|
-
uses: ruby/setup-ruby@
|
|
120
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
117
121
|
with:
|
|
118
122
|
ruby-version: ${{ matrix.ruby }}
|
|
119
123
|
bundler-cache: true
|
|
120
124
|
bundler: 'latest'
|
|
121
125
|
|
|
122
|
-
|
|
123
126
|
- name: Run swarm unit specs
|
|
124
127
|
run: bundle exec rspec spec/lib/karafka/swarm/ --tag mode:fork
|
|
125
128
|
|
data/.github/workflows/push.yml
CHANGED
|
@@ -24,7 +24,7 @@ jobs:
|
|
|
24
24
|
fetch-depth: 0
|
|
25
25
|
|
|
26
26
|
- name: Set up Ruby
|
|
27
|
-
uses: ruby/setup-ruby@
|
|
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@
|
|
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@
|
|
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.
|
|
1
|
+
3.4.7
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
# Karafka Framework Changelog
|
|
2
2
|
|
|
3
|
-
## 2.5.
|
|
3
|
+
## 2.5.2 (2025-10-31)
|
|
4
|
+
- **[EOL]** Remove Rails 7.1 support according to EOL while not blocking Rails 7.1 usage.
|
|
5
|
+
- [Enhancement] Retry on the KIP-848 `stale_member_epoch` error.
|
|
6
|
+
- [Enhancement] Provide `Karafka::Admin.trigger_rebalance` API to programmatically trigger consumer group rebalances for operational purposes.
|
|
7
|
+
- [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.
|
|
8
|
+
- [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.
|
|
9
|
+
- [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.
|
|
10
|
+
- [Enhancement] Add configurable `Karafka::ActiveJob::Deserializer` to support custom serialization formats (Avro, Protobuf, etc.) for ActiveJob payloads.
|
|
11
|
+
- [Fix] Fix ActiveJob Continuation invalid class reference bug.
|
|
12
|
+
|
|
13
|
+
## 2.5.1 (2025-09-29)
|
|
14
|
+
- **[EOL]** Remove Ruby 3.1 support according to EOL.
|
|
4
15
|
- **[Feature]** Support Swarm mode on MacOS.
|
|
5
16
|
- [Enhancement] Support past `dispatch_at` times with `jitter: 0` in the OSS Karafka to support ActiveJob continuation.
|
|
6
17
|
- [Enhancement] Use direct topic dispatches when `dispatch_at` is used for past times to bypass Scheduled Messages flow.
|
|
@@ -12,20 +23,26 @@
|
|
|
12
23
|
- [Enhancement] Include consumer group, subscription group and other details in error logs for key error locations.
|
|
13
24
|
- [Enhancement] Inherit from `ActiveJob::QueueAdapters::AbstractAdapter` when possible for ActiveJob base class.
|
|
14
25
|
- [Enhancement] Disable Nagle algorithm by default for improved network performance.
|
|
26
|
+
- [Enhancement] Optimize the messages buffer array memory allocation pattern.
|
|
15
27
|
- [Maintenance] Add basic direct DD integration spec via DD gem karafka monitoring feature.
|
|
28
|
+
- [Maintenance] Add integration specs for WaterDrop connection pool usage from within consumers.
|
|
16
29
|
- [Refactoring] Comprehensive Admin module refactoring: Extract topic operations into Admin::Topics class and consumer group operations into Admin::ConsumerGroups class with proper inheritance hierarchy, cross-class method usage optimization, and constants moved to appropriate locations where they are actually used.
|
|
17
30
|
- [Refactoring] Move routing-related contracts from `Karafka::Contracts::` to `Karafka::Routing::Contracts::` namespace and reorganize error message structure in YAML files under `routing:` scope for better code organization and logical grouping.
|
|
18
31
|
- [Refactoring] Move config-related contracts from `Karafka::Contracts::Config` to `Karafka::Setup::Contracts::Config` namespace and reorganize error message structure in YAML files under `setup:` scope for better code organization and logical grouping.
|
|
19
32
|
- [Refactoring] Move CLI server contracts from `Karafka::Contracts::ServerCliOptions` to `Karafka::Cli::Contracts::Server` namespace and reorganize error message structure in YAML files under `cli:` scope for improved naming consistency and logical grouping.
|
|
33
|
+
- [Refactoring] Replace execution mode symbol-based checks with dedicated `ExecutionMode` class providing cleaner API with query methods (`#swarm?`, `#embedded?`) and state change methods (`#swarm!`, `#embedded!`) for improved type safety and code clarity.
|
|
34
|
+
- [Refactoring] Replace connection client mode symbol-based checks with dedicated `Connection::Mode` class providing cleaner API with query methods (`#subscribe?`, `#assign?`) and state change methods (`#subscribe!`, `#assign!`) for improved code clarity.
|
|
20
35
|
- [Fix] Improve same timestamp dispatch in scheduled messages on Ruby 3.2.
|
|
21
36
|
- [Fix] Fix incorrect (6 seconds vs 60 seconds) reset of connections on non-recoverable errors.
|
|
22
37
|
- [Fix] Introduce mutex-safe and thread-safe `#inspect` where needed.
|
|
23
38
|
- [Fix] Fix too loose requirement of Ruby `3.0` when it was `3.1` via transitive dependencies.
|
|
24
39
|
- [Fix] Fix Pro Cleaner Messages compatibility with external libraries that prepend modules to `#each` method (e.g., DataDog tracing).
|
|
25
|
-
- [
|
|
40
|
+
- [Fix] SG exclusion in swarm triggers a contract validation error.
|
|
41
|
+
- [Change] Require `waterdrop` `>=` `2.8.10` to support new features.
|
|
42
|
+
- [Change] Require `karafka-rdkafka` `>=` `0.22.0` to support new features and require SSL-bug free version.
|
|
26
43
|
- [Change] Remove no longer needed `cooperative.sticky` rebalance patch.
|
|
27
44
|
- [Change] Normalize how libs and deps are required (no functional change for the end user)
|
|
28
|
-
- [
|
|
45
|
+
- **[EOL]** Remove Ruby `3.1` specs according to the EOL schedule.
|
|
29
46
|
|
|
30
47
|
## 2.5.0 (2025-06-15)
|
|
31
48
|
- **[Breaking]** Change how consistency of DLQ dispatches works in Pro (`partition_key` vs. direct partition id mapping).
|
|
@@ -81,7 +98,7 @@
|
|
|
81
98
|
- [Maintenance] Lower the `Karafka::Admin` `poll_timeout` to 50 ms to improve responsiveness of admin operations.
|
|
82
99
|
- [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.
|
|
83
100
|
- [Maintenance] Add Deimos routing patch into integration suite not to break it in the future.
|
|
84
|
-
- [
|
|
101
|
+
- **[EOL]** Remove Rails `7.0` specs due to upcoming EOL.
|
|
85
102
|
- [Fix] Fix Recurring Tasks and Scheduled Messages not working with Swarm (using closed producer).
|
|
86
103
|
- [Fix] Fix a case where `unknown_topic_or_part` error could leak out of the consumer on consumer shutdown.
|
|
87
104
|
- [Fix] Fix missing `virtual_partitions.partitioner.error` custom error logging in the `LoggerListener`.
|
|
@@ -247,7 +264,7 @@
|
|
|
247
264
|
|
|
248
265
|
This release contains **BREAKING** changes. Make sure to read and apply upgrade notes.
|
|
249
266
|
|
|
250
|
-
- **[
|
|
267
|
+
- **[EOL]** Drop Ruby `2.7` support.
|
|
251
268
|
- **[Breaking]** Drop the concept of consumer group mapping.
|
|
252
269
|
- **[Breaking]** `karafka topics migrate` will now perform declarative topics configuration alignment.
|
|
253
270
|
- **[Breaking]** Replace `deserializer` config with `#deserializers` in routing to support key and lazy header deserializers.
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
karafka (2.5.
|
|
4
|
+
karafka (2.5.2)
|
|
5
5
|
base64 (~> 0.2)
|
|
6
6
|
karafka-core (>= 2.5.6, < 2.6.0)
|
|
7
|
-
karafka-rdkafka (>= 0.
|
|
8
|
-
waterdrop (>= 2.8.
|
|
7
|
+
karafka-rdkafka (>= 0.22.0)
|
|
8
|
+
waterdrop (>= 2.8.9, < 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.
|
|
15
|
-
activesupport (= 8.
|
|
14
|
+
activejob (8.1.1)
|
|
15
|
+
activesupport (= 8.1.1)
|
|
16
16
|
globalid (>= 0.3.6)
|
|
17
|
-
activesupport (8.
|
|
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
|
-
|
|
32
|
-
bigdecimal (3.2.2)
|
|
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.
|
|
39
|
+
et-orbi (1.4.0)
|
|
41
40
|
tzinfo
|
|
42
|
-
factory_bot (6.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.
|
|
56
|
-
et-orbi (~> 1
|
|
54
|
+
fugit (1.12.1)
|
|
55
|
+
et-orbi (~> 1.4)
|
|
57
56
|
raabro (~> 1.4)
|
|
58
|
-
globalid (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.
|
|
63
|
-
karafka-core (2.5.
|
|
61
|
+
json (2.15.2)
|
|
62
|
+
karafka-core (2.5.7)
|
|
64
63
|
karafka-rdkafka (>= 0.20.0)
|
|
65
64
|
logger (>= 1.6.0)
|
|
66
|
-
karafka-rdkafka (0.
|
|
65
|
+
karafka-rdkafka (0.22.2)
|
|
67
66
|
ffi (~> 1.15)
|
|
68
67
|
json (> 2.0)
|
|
69
68
|
logger
|
|
70
69
|
mini_portile2 (~> 2.6)
|
|
71
70
|
rake (> 12)
|
|
72
|
-
karafka-rdkafka (0.
|
|
71
|
+
karafka-rdkafka (0.22.2-aarch64-linux-gnu)
|
|
73
72
|
ffi (~> 1.15)
|
|
74
73
|
json (> 2.0)
|
|
75
74
|
logger
|
|
76
75
|
mini_portile2 (~> 2.6)
|
|
77
76
|
rake (> 12)
|
|
78
|
-
karafka-rdkafka (0.
|
|
77
|
+
karafka-rdkafka (0.22.2-arm64-darwin)
|
|
79
78
|
ffi (~> 1.15)
|
|
80
79
|
json (> 2.0)
|
|
81
80
|
logger
|
|
82
81
|
mini_portile2 (~> 2.6)
|
|
83
82
|
rake (> 12)
|
|
84
|
-
karafka-rdkafka (0.
|
|
83
|
+
karafka-rdkafka (0.22.2-x86_64-linux-gnu)
|
|
85
84
|
ffi (~> 1.15)
|
|
86
85
|
json (> 2.0)
|
|
87
86
|
logger
|
|
88
87
|
mini_portile2 (~> 2.6)
|
|
89
88
|
rake (> 12)
|
|
90
|
-
karafka-rdkafka (0.
|
|
89
|
+
karafka-rdkafka (0.22.2-x86_64-linux-musl)
|
|
91
90
|
ffi (~> 1.15)
|
|
92
91
|
json (> 2.0)
|
|
93
92
|
logger
|
|
94
93
|
mini_portile2 (~> 2.6)
|
|
95
94
|
rake (> 12)
|
|
96
|
-
karafka-testing (2.5.
|
|
97
|
-
karafka (>= 2.5.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.
|
|
98
|
+
karafka-web (0.11.3)
|
|
100
99
|
erubi (~> 1.4)
|
|
101
|
-
karafka (>= 2.5.0
|
|
100
|
+
karafka (>= 2.5.0, < 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.
|
|
106
|
+
minitest (5.26.0)
|
|
108
107
|
ostruct (0.6.3)
|
|
109
108
|
raabro (1.4.0)
|
|
110
|
-
rack (3.2.
|
|
109
|
+
rack (3.2.3)
|
|
111
110
|
rake (13.3.0)
|
|
112
|
-
roda (3.
|
|
111
|
+
roda (3.97.0)
|
|
113
112
|
rack
|
|
114
|
-
rspec (3.13.
|
|
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.
|
|
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.
|
|
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.
|
|
125
|
+
rspec-support (3.13.6)
|
|
127
126
|
securerandom (0.4.1)
|
|
128
127
|
simplecov (0.22.0)
|
|
129
128
|
docile (~> 1.1)
|
|
@@ -135,9 +134,9 @@ GEM
|
|
|
135
134
|
tilt (2.6.1)
|
|
136
135
|
tzinfo (2.0.6)
|
|
137
136
|
concurrent-ruby (~> 1.0)
|
|
138
|
-
uri (1.0.
|
|
137
|
+
uri (1.0.4)
|
|
139
138
|
warning (1.5.0)
|
|
140
|
-
waterdrop (2.8.
|
|
139
|
+
waterdrop (2.8.12)
|
|
141
140
|
karafka-core (>= 2.4.9, < 3.0.0)
|
|
142
141
|
karafka-rdkafka (>= 0.20.0)
|
|
143
142
|
zeitwerk (~> 2.3)
|
data/LICENSE-COMM
CHANGED
|
@@ -2,7 +2,7 @@ END-USER LICENSE AGREEMENT
|
|
|
2
2
|
|
|
3
3
|
------------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
IMPORTANT: THIS SOFTWARE END-USER LICENSE AGREEMENT ("EULA") IS A LEGAL AGREEMENT (
|
|
5
|
+
IMPORTANT: THIS SOFTWARE END-USER LICENSE AGREEMENT ("EULA") IS A LEGAL AGREEMENT ("Agreement") BETWEEN YOU (THE CUSTOMER, EITHER AS AN INDIVIDUAL OR, IF PURCHASED OR OTHERWISE ACQUIRED BY OR FOR AN ENTITY, AS AN ENTITY) AND MACIEJ MENSFELD. READ IT CAREFULLY BEFORE COMPLETING THE INSTALLATION PROCESS AND USING KARAFKA PRO AND RELATED SOFTWARE COMPONENTS ("SOFTWARE"). IT PROVIDES A LICENSE TO USE THE SOFTWARE AND CONTAINS WARRANTY INFORMATION AND LIABILITY DISCLAIMERS. BY INSTALLING AND USING THE SOFTWARE, YOU ARE CONFIRMING YOUR ACCEPTANCE OF THE SOFTWARE AND AGREEING TO BECOME BOUND BY THE TERMS OF THIS AGREEMENT.
|
|
6
6
|
|
|
7
7
|
------------------------------------------------------------------------------
|
|
8
8
|
|
|
@@ -12,31 +12,31 @@ In order to use the Software under this Agreement, you must either: (a) receive
|
|
|
12
12
|
|
|
13
13
|
1.1 General Use. This Agreement grants you a non-exclusive, non-transferable, limited license to the use rights for the Software, without the right to grant sublicenses, subject to the terms and conditions in this Agreement. The Software is licensed, not sold.
|
|
14
14
|
|
|
15
|
-
1.2 Pro License. If you purchased a Pro License (included with the Karafka Pro Software), you may install the Software on an unlimited number of Hosts.
|
|
15
|
+
1.2 Pro License. If you purchased a Pro License (included with the Karafka Pro Software), you may install the Software on an unlimited number of Hosts. "Host" means any physical or virtual machine which is controlled by you. You may also run an unlimited number of Workers. "Worker" means a thread within a Karafka server process which executes jobs. You may concurrently run the software on an unlimited number of Hosts, with each host running an unlimited number of Workers.
|
|
16
16
|
|
|
17
17
|
1.3 Archive Copies. You are entitled to make a reasonable amount of copies of the Software for archival purposes. Each copy must reproduce all copyright and other proprietary rights notices on or in the Software Product.
|
|
18
18
|
|
|
19
|
-
1.4 Electronic Delivery. All Software and license documentation shall be delivered by electronic means unless otherwise specified on the applicable invoice or at the time of purchase. Software shall be deemed delivered when it is made available for download by you (
|
|
19
|
+
1.4 Electronic Delivery. All Software and license documentation shall be delivered by electronic means unless otherwise specified on the applicable invoice or at the time of purchase. Software shall be deemed delivered when it is made available for download by you ("Delivery").
|
|
20
20
|
|
|
21
|
-
2. Modifications. Maciej Mensfeld shall provide you with source code so that you can create Modifications of the original software.
|
|
21
|
+
2. Modifications. Maciej Mensfeld shall provide you with source code so that you can create Modifications of the original software. "Modification" means: (a) any addition to or deletion from the contents of a file included in the original Software or previous Modifications created by You, or (b) any new file that contains any part of the original Software or previous Modifications. While you retain all rights to any original work authored by you as part of the Modifications, We continue to own all copyright and other intellectual property rights in the Software.
|
|
22
22
|
|
|
23
23
|
3. Restricted Uses.
|
|
24
24
|
|
|
25
|
-
3.1 You shall not (and shall not allow any third party to): (a) decompile, disassemble, or otherwise reverse engineer the Software or attempt to reconstruct or discover any source code, underlying ideas, algorithms, file formats or programming interfaces of the Software by any means whatsoever (except and only to the extent that applicable law prohibits or restricts reverse engineering restrictions); (b) distribute, sell, sublicense, rent, lease or use the Software for time sharing, hosting, service provider or like purposes, except as expressly permitted under this Agreement; (c) redistribute the Software or Modifications other than by including the Software or a portion thereof within your own product, which must have substantially different functionality than the Software or Modifications and must not allow any third party to use the Software or Modifications, or any portions thereof, for software development or application development purposes; (d) redistribute the Software as part of a product, "appliance" or "virtual server"; (e) redistribute the Software on any server which is not directly under your control; (f) remove any product identification, proprietary, copyright or other notices contained in the Software; (g) modify any part of the Software, create a derivative work of any part of the Software (except as permitted in Section
|
|
25
|
+
3.1 You shall not (and shall not allow any third party to): (a) decompile, disassemble, or otherwise reverse engineer the Software or attempt to reconstruct or discover any source code, underlying ideas, algorithms, file formats or programming interfaces of the Software by any means whatsoever (except and only to the extent that applicable law prohibits or restricts reverse engineering restrictions); (b) distribute, sell, sublicense, rent, lease or use the Software for time sharing, hosting, service provider or like purposes, except as expressly permitted under this Agreement; (c) redistribute the Software or Modifications other than by including the Software or a portion thereof within your own product, which must have substantially different functionality than the Software or Modifications and must not allow any third party to use the Software or Modifications, or any portions thereof, for software development or application development purposes; (d) redistribute the Software as part of a product, "appliance" or "virtual server"; (e) redistribute the Software on any server which is not directly under your control; (f) remove any product identification, proprietary, copyright or other notices contained in the Software; (g) modify any part of the Software, create a derivative work of any part of the Software (except as permitted in Section 2), or incorporate the Software, except to the extent expressly authorized in writing by Maciej Mensfeld; (h) publicly disseminate performance information or analysis (including, without limitation, benchmarks) from any source relating to the Software; (i) utilize any equipment, device, software, or other means designed to circumvent or remove any form of Source URL or copy protection used by Maciej Mensfeld in connection with the Software, or use the Software together with any authorization code, Source URL, serial number, or other copy protection device not supplied by Maciej Mensfeld; (j) use the Software to develop a product which is competitive with any Maciej Mensfeld product offerings; or (k) use unauthorized Source URLS or keycode(s) or distribute or publish Source URLs or keycode(s), except as may be expressly permitted by Maciej Mensfeld in writing. If your unique Source URL or the offline license is ever published, Maciej Mensfeld reserves the right to terminate your access without notice.
|
|
26
26
|
|
|
27
27
|
3.2 UNDER NO CIRCUMSTANCES MAY YOU USE THE SOFTWARE AS PART OF A PRODUCT OR SERVICE THAT PROVIDES SIMILAR FUNCTIONALITY TO THE SOFTWARE ITSELF.
|
|
28
28
|
|
|
29
|
-
The Open Source version of the Software (
|
|
29
|
+
The Open Source version of the Software ("LGPL Version") is licensed under the terms of the GNU Lesser General Public License version 3.0 ("LGPL") and not under this EULA.
|
|
30
30
|
|
|
31
|
-
4. Ownership. Notwithstanding anything to the contrary contained herein, except for the limited license rights expressly provided herein, Maciej Mensfeld and its suppliers have and will retain all rights, title and interest (including, without limitation, all patent, copyright, trademark, trade secret and other intellectual property rights) in and to the Software and all copies, modifications and derivative works thereof (including any changes which incorporate any of your ideas, feedback or suggestions). You acknowledge that you are obtaining only a limited license right to the Software, and that irrespective of any use of the words
|
|
31
|
+
4. Ownership. Notwithstanding anything to the contrary contained herein, except for the limited license rights expressly provided herein, Maciej Mensfeld and its suppliers have and will retain all rights, title and interest (including, without limitation, all patent, copyright, trademark, trade secret and other intellectual property rights) in and to the Software and all copies, modifications and derivative works thereof (including any changes which incorporate any of your ideas, feedback or suggestions). You acknowledge that you are obtaining only a limited license right to the Software, and that irrespective of any use of the words "purchase", "sale" or like terms hereunder no ownership rights are being conveyed to you under this Agreement or otherwise.
|
|
32
32
|
|
|
33
33
|
5. Fees and Payment. The Software license fees will be due and payable in full as set forth in the applicable invoice or at the time of purchase. There are no refunds beyond the remedy refund.
|
|
34
34
|
|
|
35
|
-
6. Support, Maintenance and Services. Subject to the terms and conditions of this Agreement, as set forth in your invoice, and as set forth on the Karafka Pro support page (https://
|
|
35
|
+
6. Support, Maintenance and Services. Subject to the terms and conditions of this Agreement, as set forth in your invoice, and as set forth on the Karafka Pro support page (https://karafka.io/docs/Pro-Support/), support and maintenance services may be included with the purchase of your license subscription.
|
|
36
36
|
|
|
37
37
|
7. Term of Agreement.
|
|
38
38
|
|
|
39
|
-
7.1 Term. This Agreement is effective as of the Delivery of the Software and expires at such time as all license and service subscriptions hereunder have expired in accordance with their own terms (the
|
|
39
|
+
7.1 Term. This Agreement is effective as of the Delivery of the Software and expires at such time as all license and service subscriptions hereunder have expired in accordance with their own terms (the "Term"). For clarification, the term of your license under this Agreement may be perpetual, limited for Evaluation Version, or designated as a fixed-term license in the Invoice, and shall be specified at your time of purchase. Either party may terminate this Agreement (including all related Invoices) if the other party: (a) fails to cure any material breach of this Agreement within thirty (30) days after written notice of such breach, provided that Maciej Mensfeld may terminate this Agreement immediately upon any breach of Section 3 or if you exceed any other restrictions contained in Section 1, unless otherwise specified in this agreement; (b) ceases operation without a successor; or (c) seeks protection under any bankruptcy, receivership, trust deed, creditors arrangement, composition or comparable proceeding, or if any such proceeding is instituted against such party (and not dismissed within sixty (60) days)). Termination is not an exclusive remedy and the exercise by either party of any remedy under this Agreement will be without prejudice to any other remedies it may have under this Agreement, by law, or otherwise.
|
|
40
40
|
|
|
41
41
|
7.2 Termination. Upon any termination of this Agreement, you shall cease any and all use of any Software and destroy all copies thereof.
|
|
42
42
|
|
|
@@ -62,7 +62,7 @@ In no event will Maciej Mensfeld' liability exceed the Software license price as
|
|
|
62
62
|
|
|
63
63
|
11.3 Government End Users. If the Software and related documentation are supplied to or purchased by or on behalf of the United States Government, then the Software is deemed to be "commercial software" as that term is used in the Federal Acquisition Regulation system. Rights of the United States shall not exceed the minimum rights set forth in FAR 52.227-19 for "restricted computer software". All other terms and conditions of this Agreement apply.
|
|
64
64
|
|
|
65
|
-
12. Third Party Software. External components included in Software may provide links to third party libraries or code (collectively
|
|
65
|
+
12. Third Party Software. External components included in Software may provide links to third party libraries or code (collectively "Third Party Software") to implement various functions. Third Party Software does not comprise part of the Software. In some cases, access to Third Party Software may be included along with the Software delivery as a convenience for demonstration purposes. Such source code and libraries do not comprise the Software. Licensee acknowledges (1) that some part of Third Party Software may require additional licensing of copyright and patents from the owners of such, and (2) that distribution of any of the Software referencing or including any portion of a Third Party Software may require appropriate licensing from such third parties.
|
|
66
66
|
|
|
67
67
|
13. Miscellaneous
|
|
68
68
|
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|

|
|
2
2
|
|
|
3
|
-
[](https://github.com/karafka/karafka/actions/workflows/ci_linux_ubuntu_x86_64_gnu.yml)
|
|
4
4
|
[](http://badge.fury.io/rb/karafka)
|
|
5
5
|
[](https://slack.karafka.io)
|
|
6
6
|
|
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 \
|
data/config/locales/errors.yml
CHANGED
|
@@ -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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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'
|