karafka 2.4.0 → 2.4.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +26 -34
- data/.github/workflows/ci.yml +18 -6
- data/.ruby-version +1 -1
- data/CHANGELOG.md +146 -1
- data/Gemfile +10 -5
- data/Gemfile.lock +60 -39
- data/LICENSE +8 -3
- data/bin/integrations +13 -1
- data/certs/cert.pem +26 -0
- data/config/locales/errors.yml +18 -2
- data/config/locales/pro_errors.yml +44 -0
- data/docker-compose.yml +1 -3
- data/karafka.gemspec +6 -4
- data/lib/active_job/queue_adapters/karafka_adapter.rb +18 -7
- data/lib/karafka/active_job/dispatcher.rb +13 -0
- data/lib/karafka/active_job/job_extensions.rb +3 -0
- data/lib/karafka/admin.rb +86 -0
- data/lib/karafka/app.rb +17 -0
- data/lib/karafka/base_consumer.rb +130 -19
- data/lib/karafka/cli/base.rb +24 -8
- data/lib/karafka/cli/install.rb +2 -1
- data/lib/karafka/cli/server.rb +1 -0
- data/lib/karafka/cli/swarm.rb +1 -0
- data/lib/karafka/cli/topics/align.rb +12 -2
- data/lib/karafka/cli/topics/plan.rb +54 -6
- data/lib/karafka/cli/topics.rb +45 -18
- data/lib/karafka/connection/client.rb +102 -35
- data/lib/karafka/connection/listener.rb +48 -11
- data/lib/karafka/connection/messages_buffer.rb +19 -6
- data/lib/karafka/connection/proxy.rb +3 -0
- data/lib/karafka/connection/raw_messages_buffer.rb +43 -9
- data/lib/karafka/connection/rebalance_manager.rb +24 -13
- data/lib/karafka/contracts/config.rb +4 -0
- data/lib/karafka/contracts/consumer_group.rb +17 -0
- data/lib/karafka/contracts/routing.rb +59 -0
- data/lib/karafka/contracts/topic.rb +14 -0
- data/lib/karafka/embedded.rb +46 -3
- data/lib/karafka/errors.rb +3 -2
- data/lib/karafka/helpers/async.rb +11 -2
- data/lib/karafka/helpers/config_importer.rb +13 -0
- data/lib/karafka/instrumentation/assignments_tracker.rb +7 -2
- data/lib/karafka/instrumentation/logger_listener.rb +45 -4
- data/lib/karafka/instrumentation/notifications.rb +12 -0
- data/lib/karafka/instrumentation/vendors/appsignal/client.rb +32 -11
- data/lib/karafka/instrumentation/vendors/appsignal/errors_listener.rb +1 -1
- data/lib/karafka/instrumentation/vendors/appsignal/metrics_listener.rb +3 -1
- data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +17 -19
- data/lib/karafka/instrumentation/vendors/datadog/metrics_listener.rb +27 -18
- data/lib/karafka/instrumentation/vendors/kubernetes/base_listener.rb +2 -2
- data/lib/karafka/instrumentation/vendors/kubernetes/liveness_listener.rb +41 -13
- data/lib/karafka/messages/message.rb +9 -9
- data/lib/karafka/pro/active_job/consumer.rb +2 -10
- data/lib/karafka/pro/active_job/dispatcher.rb +67 -19
- data/lib/karafka/pro/active_job/job_options_contract.rb +12 -10
- data/lib/karafka/pro/base_consumer.rb +2 -10
- data/lib/karafka/pro/cleaner/errors.rb +2 -10
- data/lib/karafka/pro/cleaner/messages/message.rb +14 -12
- data/lib/karafka/pro/cleaner/messages/messages.rb +2 -10
- data/lib/karafka/pro/cleaner/messages/metadata.rb +41 -0
- data/lib/karafka/pro/cleaner.rb +3 -10
- data/lib/karafka/pro/connection/manager.rb +6 -10
- data/lib/karafka/pro/connection/multiplexing/listener.rb +2 -10
- data/lib/karafka/pro/contracts/base.rb +2 -10
- data/lib/karafka/pro/contracts/server_cli_options.rb +2 -10
- data/lib/karafka/pro/encryption/cipher.rb +2 -10
- data/lib/karafka/pro/encryption/contracts/config.rb +2 -10
- data/lib/karafka/pro/encryption/errors.rb +2 -10
- data/lib/karafka/pro/encryption/messages/middleware.rb +2 -10
- data/lib/karafka/pro/encryption/messages/parser.rb +2 -10
- data/lib/karafka/pro/encryption/setup/config.rb +2 -10
- data/lib/karafka/pro/encryption.rb +2 -10
- data/lib/karafka/pro/instrumentation/performance_tracker.rb +2 -10
- data/lib/karafka/pro/iterator/expander.rb +2 -10
- data/lib/karafka/pro/iterator/tpl_builder.rb +2 -10
- data/lib/karafka/pro/iterator.rb +2 -10
- data/lib/karafka/pro/loader.rb +5 -11
- data/lib/karafka/pro/processing/adaptive_iterator/consumer.rb +54 -0
- data/lib/karafka/pro/processing/adaptive_iterator/tracker.rb +67 -0
- data/lib/karafka/pro/processing/collapser.rb +2 -10
- data/lib/karafka/pro/processing/coordinator.rb +2 -10
- data/lib/karafka/pro/processing/coordinators/errors_tracker.rb +2 -10
- data/lib/karafka/pro/processing/coordinators/filters_applier.rb +19 -10
- data/lib/karafka/pro/processing/coordinators/virtual_offset_manager.rb +2 -10
- data/lib/karafka/pro/processing/executor.rb +2 -10
- data/lib/karafka/pro/processing/expansions_selector.rb +3 -10
- data/lib/karafka/pro/processing/filters/base.rb +14 -10
- data/lib/karafka/pro/processing/filters/delayer.rb +4 -12
- data/lib/karafka/pro/processing/filters/expirer.rb +2 -10
- data/lib/karafka/pro/processing/filters/inline_insights_delayer.rb +2 -10
- data/lib/karafka/pro/processing/filters/throttler.rb +2 -10
- data/lib/karafka/pro/processing/filters/virtual_limiter.rb +2 -10
- data/lib/karafka/pro/processing/jobs/consume_non_blocking.rb +4 -10
- data/lib/karafka/pro/processing/jobs/eofed_non_blocking.rb +26 -0
- data/lib/karafka/pro/processing/jobs/periodic.rb +4 -10
- data/lib/karafka/pro/processing/jobs/periodic_non_blocking.rb +4 -10
- data/lib/karafka/pro/processing/jobs/revoked_non_blocking.rb +4 -10
- data/lib/karafka/pro/processing/jobs_builder.rb +14 -10
- data/lib/karafka/pro/processing/jobs_queue.rb +2 -10
- data/lib/karafka/pro/processing/offset_metadata/consumer.rb +2 -10
- data/lib/karafka/pro/processing/offset_metadata/fetcher.rb +2 -10
- data/lib/karafka/pro/processing/offset_metadata/listener.rb +2 -10
- data/lib/karafka/pro/processing/partitioner.rb +35 -24
- data/lib/karafka/pro/processing/periodic_job/consumer.rb +2 -10
- data/lib/karafka/pro/processing/piping/consumer.rb +2 -10
- data/lib/karafka/pro/processing/schedulers/base.rb +2 -10
- data/lib/karafka/pro/processing/schedulers/default.rb +3 -10
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom.rb +3 -11
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom_vp.rb +3 -11
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom.rb +3 -11
- data/lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom_vp.rb +3 -11
- data/lib/karafka/pro/processing/strategies/aj/dlq_mom.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/dlq_mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom_vp.rb +3 -11
- data/lib/karafka/pro/processing/strategies/aj/ftr_mom.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/ftr_mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/lrj_mom.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/lrj_mom_vp.rb +5 -13
- data/lib/karafka/pro/processing/strategies/aj/mom.rb +2 -10
- data/lib/karafka/pro/processing/strategies/aj/mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/base.rb +2 -10
- data/lib/karafka/pro/processing/strategies/default.rb +140 -58
- data/lib/karafka/pro/processing/strategies/dlq/default.rb +23 -15
- data/lib/karafka/pro/processing/strategies/dlq/ftr.rb +2 -10
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj.rb +3 -11
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom.rb +7 -11
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/dlq/ftr_mom.rb +19 -11
- data/lib/karafka/pro/processing/strategies/dlq/ftr_mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/dlq/ftr_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/dlq/lrj.rb +3 -11
- data/lib/karafka/pro/processing/strategies/dlq/lrj_mom.rb +19 -11
- data/lib/karafka/pro/processing/strategies/dlq/lrj_mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/dlq/lrj_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/dlq/mom.rb +24 -16
- data/lib/karafka/pro/processing/strategies/dlq/mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/dlq/vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/ftr/default.rb +17 -12
- data/lib/karafka/pro/processing/strategies/ftr/vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/lrj/default.rb +5 -13
- data/lib/karafka/pro/processing/strategies/lrj/ftr.rb +3 -11
- data/lib/karafka/pro/processing/strategies/lrj/ftr_mom.rb +2 -10
- data/lib/karafka/pro/processing/strategies/lrj/ftr_mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/lrj/ftr_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/lrj/mom.rb +4 -12
- data/lib/karafka/pro/processing/strategies/lrj/mom_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/lrj/vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/mom/default.rb +2 -10
- data/lib/karafka/pro/processing/strategies/mom/ftr.rb +2 -10
- data/lib/karafka/pro/processing/strategies/mom/ftr_vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/mom/vp.rb +2 -10
- data/lib/karafka/pro/processing/strategies/vp/default.rb +5 -10
- data/lib/karafka/pro/processing/strategies.rb +2 -10
- data/lib/karafka/pro/processing/strategy_selector.rb +2 -10
- data/lib/karafka/pro/processing/subscription_groups_coordinator.rb +2 -10
- data/lib/karafka/pro/recurring_tasks/consumer.rb +97 -0
- data/lib/karafka/pro/recurring_tasks/contracts/config.rb +45 -0
- data/lib/karafka/pro/recurring_tasks/contracts/task.rb +33 -0
- data/lib/karafka/pro/recurring_tasks/deserializer.rb +27 -0
- data/lib/karafka/pro/recurring_tasks/dispatcher.rb +79 -0
- data/lib/karafka/pro/recurring_tasks/errors.rb +26 -0
- data/lib/karafka/pro/recurring_tasks/executor.rb +144 -0
- data/lib/karafka/pro/recurring_tasks/listener.rb +30 -0
- data/lib/karafka/pro/recurring_tasks/matcher.rb +30 -0
- data/lib/karafka/pro/recurring_tasks/schedule.rb +55 -0
- data/lib/karafka/pro/recurring_tasks/serializer.rb +105 -0
- data/lib/karafka/pro/recurring_tasks/setup/config.rb +44 -0
- data/lib/karafka/pro/recurring_tasks/task.rb +143 -0
- data/lib/karafka/pro/recurring_tasks.rb +79 -0
- data/lib/karafka/pro/routing/features/active_job/builder.rb +2 -10
- data/lib/karafka/pro/routing/features/active_job.rb +2 -10
- data/lib/karafka/pro/routing/features/adaptive_iterator/config.rb +26 -0
- data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +66 -0
- data/lib/karafka/pro/routing/features/adaptive_iterator/topic.rb +54 -0
- data/lib/karafka/pro/routing/features/adaptive_iterator.rb +23 -0
- data/lib/karafka/pro/routing/features/base.rb +2 -10
- data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/dead_letter_queue/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/dead_letter_queue.rb +2 -10
- data/lib/karafka/pro/routing/features/delaying/config.rb +2 -10
- data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/delaying/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/delaying.rb +2 -10
- data/lib/karafka/pro/routing/features/direct_assignments/config.rb +2 -10
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +2 -10
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/direct_assignments/subscription_group.rb +2 -10
- data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/direct_assignments.rb +2 -10
- data/lib/karafka/pro/routing/features/expiring/config.rb +2 -10
- data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/expiring/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/expiring.rb +2 -10
- data/lib/karafka/pro/routing/features/filtering/config.rb +2 -10
- data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/filtering/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/filtering.rb +2 -10
- data/lib/karafka/pro/routing/features/inline_insights/config.rb +2 -10
- data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/inline_insights/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/inline_insights.rb +2 -10
- data/lib/karafka/pro/routing/features/long_running_job/config.rb +2 -10
- data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/long_running_job/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/long_running_job.rb +2 -10
- data/lib/karafka/pro/routing/features/multiplexing/config.rb +2 -10
- data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/multiplexing/patches/contracts/consumer_group.rb +2 -10
- data/lib/karafka/pro/routing/features/multiplexing/proxy.rb +2 -10
- data/lib/karafka/pro/routing/features/multiplexing/subscription_group.rb +2 -10
- data/lib/karafka/pro/routing/features/multiplexing/subscription_groups_builder.rb +2 -10
- data/lib/karafka/pro/routing/features/multiplexing.rb +2 -10
- data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/non_blocking_job.rb +2 -10
- data/lib/karafka/pro/routing/features/offset_metadata/config.rb +2 -10
- data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/offset_metadata/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/offset_metadata.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/builder.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/config.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/consumer_group.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/detector.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/pattern.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/patterns.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns/topics.rb +2 -10
- data/lib/karafka/pro/routing/features/patterns.rb +2 -10
- data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/pausing/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/pausing.rb +2 -10
- data/lib/karafka/pro/routing/features/periodic_job/config.rb +2 -10
- data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/periodic_job/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/periodic_job.rb +2 -10
- data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +123 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/config.rb +20 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +32 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/proxy.rb +19 -0
- data/lib/karafka/pro/routing/features/recurring_tasks/topic.rb +36 -0
- data/lib/karafka/pro/routing/features/recurring_tasks.rb +17 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/builder.rb +123 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/config.rb +20 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +32 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/proxy.rb +19 -0
- data/lib/karafka/pro/routing/features/scheduled_messages/topic.rb +36 -0
- data/lib/karafka/pro/routing/features/scheduled_messages.rb +16 -0
- data/lib/karafka/pro/routing/features/swarm/config.rb +2 -10
- data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +2 -10
- data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/swarm/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/swarm.rb +2 -10
- data/lib/karafka/pro/routing/features/throttling/config.rb +2 -10
- data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/throttling/topic.rb +2 -10
- data/lib/karafka/pro/routing/features/throttling.rb +2 -10
- data/lib/karafka/pro/routing/features/virtual_partitions/config.rb +3 -10
- data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +3 -10
- data/lib/karafka/pro/routing/features/virtual_partitions/topic.rb +10 -12
- data/lib/karafka/pro/routing/features/virtual_partitions.rb +2 -10
- data/lib/karafka/pro/scheduled_messages/consumer.rb +177 -0
- data/lib/karafka/pro/scheduled_messages/contracts/config.rb +48 -0
- data/lib/karafka/pro/scheduled_messages/contracts/message.rb +88 -0
- data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +71 -0
- data/lib/karafka/pro/scheduled_messages/day.rb +37 -0
- data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +38 -0
- data/lib/karafka/pro/scheduled_messages/deserializers/payload.rb +27 -0
- data/lib/karafka/pro/scheduled_messages/dispatcher.rb +114 -0
- data/lib/karafka/pro/scheduled_messages/errors.rb +20 -0
- data/lib/karafka/pro/scheduled_messages/max_epoch.rb +33 -0
- data/lib/karafka/pro/scheduled_messages/proxy.rb +177 -0
- data/lib/karafka/pro/scheduled_messages/schema_validator.rb +29 -0
- data/lib/karafka/pro/scheduled_messages/serializer.rb +47 -0
- data/lib/karafka/pro/scheduled_messages/setup/config.rb +52 -0
- data/lib/karafka/pro/scheduled_messages/state.rb +54 -0
- data/lib/karafka/pro/scheduled_messages/tracker.rb +56 -0
- data/lib/karafka/pro/scheduled_messages.rb +59 -0
- data/lib/karafka/pro/swarm/liveness_listener.rb +2 -10
- data/lib/karafka/processing/coordinator.rb +14 -0
- data/lib/karafka/processing/executor.rb +29 -1
- data/lib/karafka/processing/jobs/base.rb +13 -0
- data/lib/karafka/processing/jobs/consume.rb +2 -0
- data/lib/karafka/processing/jobs/eofed.rb +29 -0
- data/lib/karafka/processing/jobs/idle.rb +2 -0
- data/lib/karafka/processing/jobs/revoked.rb +2 -0
- data/lib/karafka/processing/jobs/shutdown.rb +2 -0
- data/lib/karafka/processing/jobs_builder.rb +6 -0
- data/lib/karafka/processing/schedulers/default.rb +1 -0
- data/lib/karafka/processing/strategies/aj_dlq_mom.rb +1 -1
- data/lib/karafka/processing/strategies/default.rb +45 -13
- data/lib/karafka/processing/strategies/dlq.rb +19 -5
- data/lib/karafka/processing/strategies/dlq_mom.rb +27 -8
- data/lib/karafka/processing/worker.rb +26 -13
- data/lib/karafka/railtie.rb +11 -42
- data/lib/karafka/routing/builder.rb +19 -1
- data/lib/karafka/routing/consumer_group.rb +9 -14
- data/lib/karafka/routing/features/dead_letter_queue/config.rb +3 -0
- data/lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb +1 -0
- data/lib/karafka/routing/features/dead_letter_queue/topic.rb +7 -2
- data/lib/karafka/routing/features/eofed/config.rb +15 -0
- data/lib/karafka/routing/features/eofed/contracts/topic.rb +39 -0
- data/lib/karafka/routing/features/eofed/topic.rb +31 -0
- data/lib/karafka/routing/features/eofed.rb +14 -0
- data/lib/karafka/routing/subscription_group.rb +29 -1
- data/lib/karafka/routing/topic.rb +24 -1
- data/lib/karafka/runner.rb +10 -9
- data/lib/karafka/server.rb +37 -1
- data/lib/karafka/setup/attributes_map.rb +11 -4
- data/lib/karafka/setup/config.rb +11 -52
- data/lib/karafka/setup/defaults_injector.rb +64 -0
- data/lib/karafka/swarm/node.rb +2 -0
- data/lib/karafka/swarm/supervisor.rb +11 -2
- data/lib/karafka/templates/karafka.rb.erb +2 -2
- data/lib/karafka/version.rb +1 -1
- data/lib/karafka.rb +47 -7
- data.tar.gz.sig +0 -0
- metadata +116 -33
- metadata.gz.sig +0 -0
- data/certs/cert_chain.pem +0 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 66dcb47a4936205b3d71838001db5c64e6fab4da332f54fcb8e64521a081c871
|
|
4
|
+
data.tar.gz: 5f113ec8bc1459a5994acf8935c802b893695fd69002937b4a91b5697423cb81
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1abbfec5c703e755f012d9171934e7486ab0fbfd1295c0fd2b81216156783156415aaa2d547215aa9ec8a62f54db53b269181ed6638644c66529456f897a708a
|
|
7
|
+
data.tar.gz: 677b50678298d384ea4862fc703327a9e351d1f2bacd82f027f4f43fd60cceaac81a93cec133c005e7f90f917162301ff5725bfe5f0ba6ed1754ce2fa0503c66
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
|
@@ -1,51 +1,43 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Bug Report
|
|
3
|
-
about: Report an issue
|
|
3
|
+
about: Report an issue within the Karafka ecosystem you've discovered.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
Open an issue with a descriptive title and a summary in grammatically correct,
|
|
8
|
-
complete sentences.*
|
|
6
|
+
To make this process smoother for everyone involved, please read the following information before filling out the template.
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
hasn't been reported (and potentially fixed) already.*
|
|
8
|
+
Scope of the OSS Support
|
|
9
|
+
===========
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
rule with your own words.*
|
|
11
|
+
We do not provide OSS support for outdated versions of Karafka and its components.
|
|
16
12
|
|
|
17
|
-
|
|
13
|
+
Please ensure that you are using a version that is still actively supported. We cannot assist with any no longer maintained versions unless you support us with our Pro offering (https://karafka.io/docs/Pro-Support/).
|
|
18
14
|
|
|
19
|
-
|
|
15
|
+
We acknowledge that understanding the specifics of your application and its configuration can be essential for resolving certain issues. However, due to the extensive time and resources such analysis can require, this may fall beyond our Open Source Support scope.
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
If Karafka or its components are critical to your infrastructure, we encourage you to consider our Pro Offering.
|
|
22
18
|
|
|
23
|
-
|
|
19
|
+
By backing us up, you can gain direct assistance and ensure your use case receives the dedicated attention it deserves.
|
|
24
20
|
|
|
25
|
-
Describe here what actually happened.
|
|
26
21
|
|
|
27
|
-
|
|
22
|
+
Important Links to Read
|
|
23
|
+
===========
|
|
28
24
|
|
|
29
|
-
|
|
30
|
-
a problem will expedite its solution.
|
|
25
|
+
Please take a moment to review the following resources before submitting your report:
|
|
31
26
|
|
|
32
|
-
|
|
27
|
+
- Issue Reporting Guide: https://karafka.io/docs/Support/#issue-reporting-guide
|
|
28
|
+
- Support Policy: https://karafka.io/docs/Support/
|
|
29
|
+
- Versions, Lifecycle, and EOL: https://karafka.io/docs/Versions-Lifecycle-and-EOL/
|
|
33
30
|
|
|
34
|
-
Please provide kafka version and the output of `karafka info` or `bundle exec karafka info` if using Bundler.
|
|
35
31
|
|
|
36
|
-
|
|
32
|
+
Bug Report Details
|
|
33
|
+
===========
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Boot file: /app/karafka.rb
|
|
48
|
-
Environment: development
|
|
49
|
-
License: Commercial
|
|
50
|
-
License entity: karafka-ci
|
|
51
|
-
```
|
|
35
|
+
Please provide all the details per our Issue Reporting Guide: https://karafka.io/docs/Support/#issue-reporting-guide
|
|
36
|
+
|
|
37
|
+
Failing to provide the required details may result in the issue being closed. Please include all necessary information to help us understand and resolve your issue effectively.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
Additional Context
|
|
41
|
+
===========
|
|
42
|
+
|
|
43
|
+
Add any other context about the problem here.
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
- name: Set up Ruby
|
|
28
28
|
uses: ruby/setup-ruby@v1
|
|
29
29
|
with:
|
|
30
|
-
ruby-version: 3.
|
|
30
|
+
ruby-version: 3.4
|
|
31
31
|
bundler-cache: true
|
|
32
32
|
|
|
33
33
|
- name: Install Diffend plugin
|
|
@@ -73,12 +73,12 @@ jobs:
|
|
|
73
73
|
fail-fast: false
|
|
74
74
|
matrix:
|
|
75
75
|
ruby:
|
|
76
|
+
- '3.4'
|
|
76
77
|
- '3.3'
|
|
77
78
|
- '3.2'
|
|
78
79
|
- '3.1'
|
|
79
|
-
- '3.0'
|
|
80
80
|
include:
|
|
81
|
-
- ruby: '3.
|
|
81
|
+
- ruby: '3.4'
|
|
82
82
|
coverage: 'true'
|
|
83
83
|
steps:
|
|
84
84
|
- uses: actions/checkout@v4
|
|
@@ -89,6 +89,13 @@ jobs:
|
|
|
89
89
|
run: |
|
|
90
90
|
docker compose up -d || (sleep 5 && docker compose up -d)
|
|
91
91
|
|
|
92
|
+
# Newer versions of ActiveSupport and Rails do not work with Ruby 3.1 anymore.
|
|
93
|
+
# While we use newer by default we do want to resolve older and test, thus we remove
|
|
94
|
+
# Gemfile.lock and let it resolve to the most compatible version possible
|
|
95
|
+
- name: Remove Gemfile.lock if Ruby 3.1
|
|
96
|
+
if: matrix.ruby == '3.1'
|
|
97
|
+
run: rm -f Gemfile.lock
|
|
98
|
+
|
|
92
99
|
- name: Set up Ruby
|
|
93
100
|
uses: ruby/setup-ruby@v1
|
|
94
101
|
with:
|
|
@@ -113,10 +120,10 @@ jobs:
|
|
|
113
120
|
fail-fast: false
|
|
114
121
|
matrix:
|
|
115
122
|
ruby:
|
|
123
|
+
- '3.4'
|
|
116
124
|
- '3.3'
|
|
117
125
|
- '3.2'
|
|
118
126
|
- '3.1'
|
|
119
|
-
- '3.0'
|
|
120
127
|
steps:
|
|
121
128
|
- uses: actions/checkout@v4
|
|
122
129
|
- name: Install package dependencies
|
|
@@ -146,6 +153,11 @@ jobs:
|
|
|
146
153
|
|
|
147
154
|
bundle config set without 'tools benchmarks docs'
|
|
148
155
|
|
|
156
|
+
- name: Fix directory permissions for Bundler
|
|
157
|
+
run: |
|
|
158
|
+
chmod -R o-w /opt/hostedtoolcache/Ruby/3*/x64/lib/ruby/gems/3*/gems
|
|
159
|
+
chmod +t /opt/hostedtoolcache/Ruby/3*/x64/lib/ruby/gems/3*/gems
|
|
160
|
+
|
|
149
161
|
- name: Bundle install
|
|
150
162
|
run: |
|
|
151
163
|
bundle config set without development
|
|
@@ -159,17 +171,17 @@ jobs:
|
|
|
159
171
|
run: bin/integrations --exclude '/pro'
|
|
160
172
|
|
|
161
173
|
integrations_pro:
|
|
162
|
-
timeout-minutes:
|
|
174
|
+
timeout-minutes: 45
|
|
163
175
|
runs-on: ubuntu-latest
|
|
164
176
|
needs: diffend
|
|
165
177
|
strategy:
|
|
166
178
|
fail-fast: false
|
|
167
179
|
matrix:
|
|
168
180
|
ruby:
|
|
181
|
+
- '3.4'
|
|
169
182
|
- '3.3'
|
|
170
183
|
- '3.2'
|
|
171
184
|
- '3.1'
|
|
172
|
-
- '3.0'
|
|
173
185
|
steps:
|
|
174
186
|
- uses: actions/checkout@v4
|
|
175
187
|
- name: Install package dependencies
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.
|
|
1
|
+
3.4.1
|
data/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,145 @@
|
|
|
1
|
-
# Karafka
|
|
1
|
+
# Karafka Framework Changelog
|
|
2
|
+
|
|
3
|
+
## 2.4.18 (2025-04-09)
|
|
4
|
+
- [Fix] Make sure `Bundler.with_unbundled_env` is not called multiple times.
|
|
5
|
+
|
|
6
|
+
## 2.4.17 (2025-01-15)
|
|
7
|
+
- [Enhancement] Clean message key and headers when cleaning messages via the cleaner API (Pro).
|
|
8
|
+
- [Enhancement] Allow for setting `metadata: false` in the cleaner API for granular cleaning control (Pro)
|
|
9
|
+
- [Enhancement] Instrument successful transaction via `consumer.consuming.transaction` event (Pro).
|
|
10
|
+
|
|
11
|
+
## 2.4.16 (2024-12-27)
|
|
12
|
+
- [Enhancement] Improve post-rebalance revocation messages filtering.
|
|
13
|
+
- [Enhancement] Introduce `Consumer#wrap` for connection pooling management and other wrapped operations.
|
|
14
|
+
- [Enhancement] Guard transactional operations from marking beyond assignment ownership under some extreme edge-cases.
|
|
15
|
+
- [Enhancement] Improve VPs work with transactional producers.
|
|
16
|
+
- [Enhancement] Prevent non-transactional operations leakage into transactional managed offset management consumers.
|
|
17
|
+
- [Fix] Prevent transactions from being marked with a non-transactional default producer when automatic offset management and other advanced features are on.
|
|
18
|
+
- [Fix] Fix `kafka_format` `KeyError` that occurs when a non-hash is assigned to the kafka scope of the settings.
|
|
19
|
+
- [Fix] Non cooperative-sticky transactional offset management can refetch reclaimed partitions.
|
|
20
|
+
|
|
21
|
+
## 2.4.15 (2024-12-04)
|
|
22
|
+
- [Fix] Assignment tracker current state fetch during a rebalance loop can cause an error on multi CG setup.
|
|
23
|
+
- [Fix] Prevent double post-transaction offset dispatch to Kafka.
|
|
24
|
+
|
|
25
|
+
## 2.4.14 (2024-11-25)
|
|
26
|
+
- [Enhancement] Improve low-level critical error reporting.
|
|
27
|
+
- [Enhancement] Expand Kubernetes Liveness state reporting with critical errors detection.
|
|
28
|
+
- [Enhancement] Save several string allocations and one array allocation on each job execution when using Datadog instrumentation.
|
|
29
|
+
- [Enhancement] Support `eofed` jobs in the AppSignal instrumentation.
|
|
30
|
+
- [Enhancement] Allow running bootfile-less Rails setup Karafka CLI commands where stuff is configured in the initializers.
|
|
31
|
+
- [Fix] `Instrumentation::Vendors::Datadog::LoggerListener` treats eof jobs as consume jobs.
|
|
32
|
+
|
|
33
|
+
## 2.4.13 (2024-10-11)
|
|
34
|
+
- [Enhancement] Make declarative topics return different exit codes on migrable/non-migrable states (0 - no changes, 2 - changes) when used with `--detailed-exitcode` flag.
|
|
35
|
+
- [Enhancement] Introduce `config.strict_declarative_topics` that should force declaratives on all non-pattern based topics and DLQ topics
|
|
36
|
+
- [Enhancement] Report ignored repartitioning to lower number of partitions in declarative topics.
|
|
37
|
+
- [Enhancement] Promote the `LivenessListener#healty?` to a public API.
|
|
38
|
+
- [Fix] Fix `Karafka::Errors::MissingBootFileError` when debugging in VScode with ruby-lsp.
|
|
39
|
+
- [Fix] Require `karafka-core` `>=` `2.4.4` to prevent dependencies conflicts.
|
|
40
|
+
- [Fix] Validate swarm cli and always parse options from argv (roelbondoc)
|
|
41
|
+
|
|
42
|
+
## 2.4.12 (2024-09-17)
|
|
43
|
+
- **[Feature]** Provide Adaptive Iterator feature as a fast alternative to Long-Running Jobs (Pro).
|
|
44
|
+
- [Enhancement] Provide `Consumer#each` as a delegation to messages batch.
|
|
45
|
+
- [Enhancement] Verify cancellation request envelope topic similar to the schedule one.
|
|
46
|
+
- [Enhancement] Validate presence of `bootstrap.servers` to avoid incomplete partial reconfiguration.
|
|
47
|
+
- [Enhancement] Support `ActiveJob#enqueue_at` via Scheduled Messages feature (Pro).
|
|
48
|
+
- [Enhancement] Introduce `Karafka::App#debug!` that will switch Karafka and the default producer into extensive debug mode. Useful for CLI debugging.
|
|
49
|
+
- [Enhancement] Support full overwrite of the `BaseConsumer#producer`.
|
|
50
|
+
- [Enhancement] Transfer the time of last poll back to the coordinator for more accurate metrics tracking.
|
|
51
|
+
- [Enhancement] Instrument `Consumer#seek` via `consumer.consuming.seek`.
|
|
52
|
+
- [Fix] Fix incorrect time reference reload in scheduled messages.
|
|
53
|
+
|
|
54
|
+
## 2.4.11 (2024-09-04)
|
|
55
|
+
- [Enhancement] Validate envelope target topic type for Scheduled Messages.
|
|
56
|
+
- [Enhancement] Support for enqueue_after_transaction_commit in rails active job.
|
|
57
|
+
- [Fix] Fix invalid reference to AppSignal version.
|
|
58
|
+
|
|
59
|
+
## 2.4.10 (2024-09-03)
|
|
60
|
+
- **[Feature]** Provide Kafka based Scheduled Messages to be able to send messages in the future via a proxy topic.
|
|
61
|
+
- [Enhancement] Introduce a `#assigned` hook for consumers to be able to trigger actions when consumer is built and assigned but before first consume/ticking, etc.
|
|
62
|
+
- [Enhancement] Provide `Karafka::Messages::Message#tombstone?` to be able to quickly check if a message is a tombstone message.
|
|
63
|
+
- [Enhancement] Provide more flexible API for Recurring Tasks topics reconfiguration.
|
|
64
|
+
- [Enhancement] Remove no longer needed Rails connection releaser.
|
|
65
|
+
- [Enhancement] Update AppSignal client to support newer versions (tombruijn and hieuk09).
|
|
66
|
+
- [Fix] Fix a case where there would be a way to define multiple subscription groups for same topic with different consumer.
|
|
67
|
+
|
|
68
|
+
## 2.4.9 (2024-08-23)
|
|
69
|
+
- **[Feature]** Provide Kafka based Recurring (Cron) Tasks.
|
|
70
|
+
- [Enhancement] Wrap worker work with Rails Reloader/Executor (fusion2004)
|
|
71
|
+
- [Enhancement] Allow for partial topic level kafka scope settings reconfiguration via `inherit` flag.
|
|
72
|
+
- [Enhancement] Validate `eof` kafka scope flag when `eofed` in routing enabled.
|
|
73
|
+
- [Enhancement] Provide `mark_after_dispatch` setting for granular DLQ marking control.
|
|
74
|
+
- [Enhancement] Provide `Karafka::Admin.rename_consumer_group`.
|
|
75
|
+
|
|
76
|
+
## 2.4.8 (2024-08-09)
|
|
77
|
+
- **[Feature]** Introduce ability to react to `#eof` either from `#consume` or from `#eofed` when EOF without new messages.
|
|
78
|
+
- [Enhancement] Provide `Consumer#eofed?` to indicate reaching EOF.
|
|
79
|
+
- [Enhancement] Always immediately report on `inconsistent_group_protocol` error.
|
|
80
|
+
- [Enhancement] Reduce virtual partitioning to 1 partition when any partitioner execution in a partitioned batch crashes.
|
|
81
|
+
- [Enhancement] Provide `KARAFKA_REQUIRE_RAILS` to disable default Rails `require` to run Karafka without Rails despite having Rails in the Gemfile.
|
|
82
|
+
- [Enhancement] Increase final listener recovery from 1 to 60 seconds to prevent constant rebalancing. This is the last resort recovery and should never happen unless critical errors occur.
|
|
83
|
+
|
|
84
|
+
## 2.4.7 (2024-08-01)
|
|
85
|
+
- [Enhancement] Introduce `Karafka::Server.execution_mode` to check in what mode Karafka process operates (`standalone`, `swarm`, `supervisor`, `embedded`).
|
|
86
|
+
- [Enhancement] Ensure `max.poll.interval.ms` is always present and populate it with librdkafka default.
|
|
87
|
+
- [Enhancement] Introduce a shutdown time limit for unsubscription wait.
|
|
88
|
+
- [Enhancement] Tag with `mode:swarm` each of the running swarm consumers.
|
|
89
|
+
- [Change] Tag with `mode:embedded` instead of `embedded` the embedded consumers.
|
|
90
|
+
- [Fix] License identifier `LGPL-3.0` is deprecated for SPDX (#2177).
|
|
91
|
+
- [Fix] Fix an issue where custom clusters would not have default settings populated same as the primary cluster.
|
|
92
|
+
- [Fix] Fix Rspec warnings of nil mocks.
|
|
93
|
+
- [Maintenance] Cover `cooperative-sticky` librdkafka issues with integration spec.
|
|
94
|
+
|
|
95
|
+
## 2.4.6 (2024-07-22)
|
|
96
|
+
- [Fix] Mitigate `rd_kafka_cgrp_terminated` and other `librdkafka` shutdown issues by unsubscribing fully prior to shutdown.
|
|
97
|
+
|
|
98
|
+
## 2.4.5 (2024-07-18)
|
|
99
|
+
- [Change] Inject `client.id` when building subscription group and not during the initial setup.
|
|
100
|
+
- [Fix] Mitigate `confluentinc/librdkafka/issues/4783` by injecting dynamic client id when using `cooperative-sticky` strategy.
|
|
101
|
+
|
|
102
|
+
### Change Note
|
|
103
|
+
|
|
104
|
+
`client.id` is technically a low-importance value that should not (aside from this error) impact operations. This is why it is not considered a breaking change. This change may be reverted when the original issue is fixed in librdkafka.
|
|
105
|
+
|
|
106
|
+
## 2.4.4 (2024-07-04)
|
|
107
|
+
- [Enhancement] Allow for offset storing from the Filtering API.
|
|
108
|
+
- [Enhancement] Print more extensive error info on forceful shutdown.
|
|
109
|
+
- [Enhancement] Include `original_key` in the DLQ dispatch headers.
|
|
110
|
+
- [Enhancement] Support embedding mode control management from the trap context.
|
|
111
|
+
- [Enhancement] Make sure, that the listener thread is stopped before restarting.
|
|
112
|
+
- [Fix] Do not block on hanging listener shutdown when invoking forceful shutdown.
|
|
113
|
+
- [Fix] Static membership fencing error is not propagated explicitly enough.
|
|
114
|
+
- [Fix] Make sure DLQ dispatches raw headers and not deserialized headers (same as payload).
|
|
115
|
+
- [Fix] Fix a typo where `ms` in logger listener would not have space before it.
|
|
116
|
+
- [Maintenance] Require `karafka-core` `>=` `2.4.3`.
|
|
117
|
+
- [Maintenance] Allow for usage of `karafka-rdkafka` `~` `0.16` to support librdkafka `2.4.0`.
|
|
118
|
+
- [Maintenance] Lower the precision reporting to 100 microseconds in the logger listener.
|
|
119
|
+
|
|
120
|
+
## 2.4.3 (2024-06-12)
|
|
121
|
+
- [Enhancement] Allow for customization of Virtual Partitions reducer for enhanced parallelization.
|
|
122
|
+
- [Enhancement] Add more error codes to early report on polling issues (kidlab)
|
|
123
|
+
- [Enhancement] Add `transport`, `network_exception` and `coordinator_load_in_progress` alongside `timed_out` to retryable errors for the proxy.
|
|
124
|
+
- [Enhancement] Improve `strict_topics_namespacing` validation message.
|
|
125
|
+
- [Change] Remove default empty thread name from `Async` since Web has been upgraded.
|
|
126
|
+
- [Fix] Installer doesn't respect directories in `KARAFKA_BOOT_FILE`.
|
|
127
|
+
- [Fix] Fix case where non absolute boot file path would not work as expected.
|
|
128
|
+
- [Fix] Allow for installing Karafka in a non-existing (yet) directory
|
|
129
|
+
- [Maintenance] Require `waterdrop` `>=` `2.7.3` to support idempotent producer detection.
|
|
130
|
+
|
|
131
|
+
## 2.4.2 (2024-05-14)
|
|
132
|
+
- [Enhancement] Validate ActiveJob adapter custom producer format.
|
|
133
|
+
- [Fix] Internal seek does not resolve the offset correctly for time based lookup.
|
|
134
|
+
|
|
135
|
+
## 2.4.1 (2024-05-10)
|
|
136
|
+
- [Enhancement] Allow for usage of producer variants and alternative producers with ActiveJob Jobs (Pro).
|
|
137
|
+
- [Enhancement] Support `:earliest` and `:latest` in `Karafka::Admin#seek_consumer_group`.
|
|
138
|
+
- [Enhancement] Align configuration attributes mapper with exact librdkafka version used and not master.
|
|
139
|
+
- [Maintenance] Use `base64` from RubyGems as it will no longer be part of standard library in Ruby 3.4.
|
|
140
|
+
- [Fix] Support migrating via aliases and plan with aliases usage.
|
|
141
|
+
- [Fix] Active with default set to `false` cannot be overwritten
|
|
142
|
+
- [Fix] Fix inheritance of ActiveJob adapter `karafka_options` partitioner and dispatch method.
|
|
2
143
|
|
|
3
144
|
## 2.4.0 (2024-04-26)
|
|
4
145
|
|
|
@@ -61,6 +202,10 @@ This release contains **BREAKING** changes. Make sure to read and apply upgrade
|
|
|
61
202
|
|
|
62
203
|
Available [here](https://karafka.io/docs/Upgrades-2.4/).
|
|
63
204
|
|
|
205
|
+
## 2.3.4 (2024-04-11)
|
|
206
|
+
|
|
207
|
+
- [Fix] Seek consumer group on a topic level is updating only recent partition.
|
|
208
|
+
|
|
64
209
|
## 2.3.3 (2024-02-26)
|
|
65
210
|
- [Enhancement] Routing based topics allocation for swarm (Pro)
|
|
66
211
|
- [Enhancement] Publish the `-1` shutdown reason status for a non-responding node in swarm.
|
data/Gemfile
CHANGED
|
@@ -6,19 +6,24 @@ plugin 'diffend'
|
|
|
6
6
|
|
|
7
7
|
gemspec
|
|
8
8
|
|
|
9
|
-
# Karafka gem does not require activejob
|
|
9
|
+
# Karafka gem does not require activejob, karafka-web or fugit to work
|
|
10
10
|
# They are added here because they are part of the integration suite
|
|
11
11
|
# Since some of those are only needed for some specs, they should never be required automatically
|
|
12
|
+
group :integrations, :test do
|
|
13
|
+
gem 'fugit', require: false
|
|
14
|
+
gem 'rspec', require: false
|
|
15
|
+
gem 'stringio'
|
|
16
|
+
end
|
|
17
|
+
|
|
12
18
|
group :integrations do
|
|
13
19
|
gem 'activejob', require: false
|
|
14
|
-
gem 'karafka-testing', '>= 2.4.
|
|
15
|
-
gem 'karafka-web', '>= 0.
|
|
16
|
-
gem 'rspec', require: false
|
|
20
|
+
gem 'karafka-testing', '>= 2.4.6', require: false
|
|
21
|
+
gem 'karafka-web', '>= 0.10.0.rc2', require: false
|
|
17
22
|
end
|
|
18
23
|
|
|
19
24
|
group :test do
|
|
20
25
|
gem 'byebug'
|
|
21
26
|
gem 'factory_bot'
|
|
22
|
-
gem '
|
|
27
|
+
gem 'ostruct'
|
|
23
28
|
gem 'simplecov'
|
|
24
29
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,64 +1,78 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
karafka (2.4.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
karafka (2.4.18)
|
|
5
|
+
base64 (~> 0.2)
|
|
6
|
+
karafka-core (>= 2.4.4, < 2.5.0)
|
|
7
|
+
karafka-rdkafka (>= 0.17.2)
|
|
8
|
+
waterdrop (>= 2.7.3, < 3.0.0)
|
|
7
9
|
zeitwerk (~> 2.3)
|
|
8
10
|
|
|
9
11
|
GEM
|
|
10
12
|
remote: https://rubygems.org/
|
|
11
13
|
specs:
|
|
12
|
-
activejob (
|
|
13
|
-
activesupport (=
|
|
14
|
+
activejob (8.0.1)
|
|
15
|
+
activesupport (= 8.0.1)
|
|
14
16
|
globalid (>= 0.3.6)
|
|
15
|
-
activesupport (
|
|
17
|
+
activesupport (8.0.1)
|
|
16
18
|
base64
|
|
19
|
+
benchmark (>= 0.3)
|
|
17
20
|
bigdecimal
|
|
18
|
-
concurrent-ruby (~> 1.0, >= 1.
|
|
21
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
19
22
|
connection_pool (>= 2.2.5)
|
|
20
23
|
drb
|
|
21
24
|
i18n (>= 1.6, < 2)
|
|
25
|
+
logger (>= 1.4.2)
|
|
22
26
|
minitest (>= 5.1)
|
|
23
|
-
|
|
24
|
-
tzinfo (~> 2.0)
|
|
27
|
+
securerandom (>= 0.3)
|
|
28
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
29
|
+
uri (>= 0.13.1)
|
|
25
30
|
base64 (0.2.0)
|
|
26
|
-
|
|
31
|
+
benchmark (0.3.0)
|
|
32
|
+
bigdecimal (3.1.8)
|
|
27
33
|
byebug (11.1.3)
|
|
28
|
-
concurrent-ruby (1.
|
|
34
|
+
concurrent-ruby (1.3.4)
|
|
29
35
|
connection_pool (2.4.1)
|
|
30
36
|
diff-lcs (1.5.1)
|
|
31
|
-
docile (1.4.
|
|
37
|
+
docile (1.4.1)
|
|
32
38
|
drb (2.2.1)
|
|
33
|
-
erubi (1.
|
|
34
|
-
|
|
39
|
+
erubi (1.13.0)
|
|
40
|
+
et-orbi (1.2.11)
|
|
41
|
+
tzinfo
|
|
42
|
+
factory_bot (6.5.0)
|
|
35
43
|
activesupport (>= 5.0.0)
|
|
36
|
-
ffi (1.
|
|
44
|
+
ffi (1.17.0)
|
|
45
|
+
fugit (1.11.1)
|
|
46
|
+
et-orbi (~> 1, >= 1.2.11)
|
|
47
|
+
raabro (~> 1.4)
|
|
37
48
|
globalid (1.2.1)
|
|
38
49
|
activesupport (>= 6.1)
|
|
39
|
-
i18n (1.14.
|
|
50
|
+
i18n (1.14.6)
|
|
40
51
|
concurrent-ruby (~> 1.0)
|
|
41
|
-
karafka-core (2.4.
|
|
42
|
-
karafka-rdkafka (>= 0.
|
|
43
|
-
|
|
52
|
+
karafka-core (2.4.8)
|
|
53
|
+
karafka-rdkafka (>= 0.17.6, < 0.19.0)
|
|
54
|
+
logger (>= 1.6.0)
|
|
55
|
+
karafka-rdkafka (0.18.1)
|
|
44
56
|
ffi (~> 1.15)
|
|
45
57
|
mini_portile2 (~> 2.6)
|
|
46
58
|
rake (> 12)
|
|
47
|
-
karafka-testing (2.4.
|
|
48
|
-
karafka (>= 2.4.0
|
|
49
|
-
waterdrop (>= 2.7.0
|
|
50
|
-
karafka-web (0.
|
|
59
|
+
karafka-testing (2.4.6)
|
|
60
|
+
karafka (>= 2.4.0, < 2.5.0)
|
|
61
|
+
waterdrop (>= 2.7.0)
|
|
62
|
+
karafka-web (0.10.4)
|
|
51
63
|
erubi (~> 1.4)
|
|
52
|
-
karafka (>= 2.4.
|
|
53
|
-
karafka-core (>= 2.4.0
|
|
64
|
+
karafka (>= 2.4.10, < 2.5.0)
|
|
65
|
+
karafka-core (>= 2.4.0, < 2.5.0)
|
|
54
66
|
roda (~> 3.68, >= 3.69)
|
|
55
67
|
tilt (~> 2.0)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
68
|
+
logger (1.6.3)
|
|
69
|
+
mini_portile2 (2.8.8)
|
|
70
|
+
minitest (5.25.4)
|
|
71
|
+
ostruct (0.6.1)
|
|
72
|
+
raabro (1.4.0)
|
|
73
|
+
rack (3.1.8)
|
|
60
74
|
rake (13.2.1)
|
|
61
|
-
roda (3.
|
|
75
|
+
roda (3.84.0)
|
|
62
76
|
rack
|
|
63
77
|
rspec (3.13.0)
|
|
64
78
|
rspec-core (~> 3.13.0)
|
|
@@ -66,26 +80,30 @@ GEM
|
|
|
66
80
|
rspec-mocks (~> 3.13.0)
|
|
67
81
|
rspec-core (3.13.0)
|
|
68
82
|
rspec-support (~> 3.13.0)
|
|
69
|
-
rspec-expectations (3.13.
|
|
83
|
+
rspec-expectations (3.13.1)
|
|
70
84
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
71
85
|
rspec-support (~> 3.13.0)
|
|
72
|
-
rspec-mocks (3.13.
|
|
86
|
+
rspec-mocks (3.13.1)
|
|
73
87
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
74
88
|
rspec-support (~> 3.13.0)
|
|
75
89
|
rspec-support (3.13.1)
|
|
90
|
+
securerandom (0.3.2)
|
|
76
91
|
simplecov (0.22.0)
|
|
77
92
|
docile (~> 1.1)
|
|
78
93
|
simplecov-html (~> 0.11)
|
|
79
94
|
simplecov_json_formatter (~> 0.1)
|
|
80
95
|
simplecov-html (0.12.3)
|
|
81
96
|
simplecov_json_formatter (0.1.4)
|
|
82
|
-
|
|
97
|
+
stringio (3.1.2)
|
|
98
|
+
tilt (2.4.0)
|
|
83
99
|
tzinfo (2.0.6)
|
|
84
100
|
concurrent-ruby (~> 1.0)
|
|
85
|
-
|
|
86
|
-
|
|
101
|
+
uri (1.0.2)
|
|
102
|
+
waterdrop (2.8.1)
|
|
103
|
+
karafka-core (>= 2.4.3, < 3.0.0)
|
|
104
|
+
karafka-rdkafka (>= 0.17.5)
|
|
87
105
|
zeitwerk (~> 2.3)
|
|
88
|
-
zeitwerk (2.
|
|
106
|
+
zeitwerk (2.7.1)
|
|
89
107
|
|
|
90
108
|
PLATFORMS
|
|
91
109
|
ruby
|
|
@@ -95,11 +113,14 @@ DEPENDENCIES
|
|
|
95
113
|
activejob
|
|
96
114
|
byebug
|
|
97
115
|
factory_bot
|
|
116
|
+
fugit
|
|
98
117
|
karafka!
|
|
99
|
-
karafka-testing (>= 2.4.
|
|
100
|
-
karafka-web (>= 0.
|
|
118
|
+
karafka-testing (>= 2.4.6)
|
|
119
|
+
karafka-web (>= 0.10.0.rc2)
|
|
120
|
+
ostruct
|
|
101
121
|
rspec
|
|
102
122
|
simplecov
|
|
123
|
+
stringio
|
|
103
124
|
|
|
104
125
|
BUNDLED WITH
|
|
105
|
-
2.
|
|
126
|
+
2.4.22
|
data/LICENSE
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
Copyright (c) Maciej Mensfeld
|
|
2
2
|
|
|
3
3
|
Karafka is an Open Source project licensed under the terms of
|
|
4
|
-
the LGPLv3 license. Please see <https://github.com/karafka/karafka/blob/master/LGPL>
|
|
4
|
+
the LGPLv3 license. Please see <https://github.com/karafka/karafka/blob/master/LICENSE-LGPL>
|
|
5
5
|
for license text.
|
|
6
6
|
|
|
7
7
|
Karafka has also commercial-friendly license, commercial support and commercial components.
|
|
8
8
|
|
|
9
|
-
All of the commercial components are present in the
|
|
10
|
-
|
|
9
|
+
All of the commercial components are present in the:
|
|
10
|
+
|
|
11
|
+
- `lib/karafka/pro`
|
|
12
|
+
- `spec/lib/karafka/pro`
|
|
13
|
+
- `spec/integrations/pro`
|
|
14
|
+
|
|
15
|
+
directories of this repository and their usage requires commercial license agreement.
|
|
11
16
|
|
|
12
17
|
By sending a pull request to the pro components, you are agreeing to transfer the copyright of your
|
|
13
18
|
code to Maciej Mensfeld.
|
data/bin/integrations
CHANGED
|
@@ -45,7 +45,10 @@ class Scenario
|
|
|
45
45
|
'shutdown/on_hanging_on_shutdown_job_and_a_shutdown_spec.rb' => [2].freeze,
|
|
46
46
|
'shutdown/on_hanging_listener_and_shutdown_spec.rb' => [2].freeze,
|
|
47
47
|
'swarm/forceful_shutdown_of_hanging_spec.rb' => [2].freeze,
|
|
48
|
-
'instrumentation/post_errors_instrumentation_error_spec.rb' => [1].freeze
|
|
48
|
+
'instrumentation/post_errors_instrumentation_error_spec.rb' => [1].freeze,
|
|
49
|
+
'cli/declaratives/delete/existing_with_exit_code_spec.rb' => [2].freeze,
|
|
50
|
+
'cli/declaratives/create/new_with_exit_code_spec.rb' => [2].freeze,
|
|
51
|
+
'cli/declaratives/plan/when_changes_with_detailed_exit_code_spec.rb' => [2].freeze
|
|
49
52
|
}.freeze
|
|
50
53
|
|
|
51
54
|
private_constant :MAX_RUN_TIME, :EXIT_CODES
|
|
@@ -240,6 +243,15 @@ ARGV.each do |filter|
|
|
|
240
243
|
end
|
|
241
244
|
end
|
|
242
245
|
|
|
246
|
+
# Remove Rails 7.2 specs from Ruby < 3.1 because it requires 3.1
|
|
247
|
+
# Remove Rails 8.0 specs from Ruby < 3.2 because it requires 3.2
|
|
248
|
+
specs.delete_if do |spec|
|
|
249
|
+
next true if RUBY_VERSION < '3.1' && spec.include?('rails72')
|
|
250
|
+
next true if RUBY_VERSION < '3.2' && spec.include?('rails8')
|
|
251
|
+
|
|
252
|
+
false
|
|
253
|
+
end
|
|
254
|
+
|
|
243
255
|
raise ArgumentError, "No integration specs with filters: #{ARGV.join(', ')}" if specs.empty?
|
|
244
256
|
|
|
245
257
|
# Randomize order
|
data/certs/cert.pem
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
|
|
3
|
+
YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
|
|
4
|
+
MB4XDTI0MDgyMzEwMTkyMFoXDTQ5MDgxNzEwMTkyMFowPzEQMA4GA1UEAwwHY29u
|
|
5
|
+
dGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp
|
|
6
|
+
bzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKjLhLjQqUlNayxkXnO+
|
|
7
|
+
PsmCDs/KFIzhrsYMfLZRZNaWmzV3ujljMOdDjd4snM2X06C41iVdQPWjpe3j8vVe
|
|
8
|
+
ZXEWR/twSbOP6Eeg8WVH2wCOo0x5i7yhVn4UBLH4JpfEMCbemVcWQ9ry9OMg4WpH
|
|
9
|
+
Uu4dRwxFV7hzCz3p0QfNLRI4miAxnGWcnlD98IJRjBAksTuR1Llj0vbOrDGsL9ZT
|
|
10
|
+
JeXP2gdRLd8SqzAFJEWrbeTBCBU7gfSh3oMg5SVDLjaqf7Kz5wC/8bDZydzanOxB
|
|
11
|
+
T6CDXPsCnllmvTNx2ei2T5rGYJOzJeNTmJLLK6hJWUlAvaQSvCwZRvFJ0tVGLEoS
|
|
12
|
+
flqSr6uGyyl1eMUsNmsH4BqPEYcAV6P2PKTv2vUR8AP0raDvZ3xL1TKvfRb8xRpo
|
|
13
|
+
vPopCGlY5XBWEc6QERHfVLTIVsjnls2/Ujj4h8/TSfqqYnaHKefIMLbuD/tquMjD
|
|
14
|
+
iWQsW2qStBV0T+U7FijKxVfrfqZP7GxQmDAc9o1iiyAa3QIDAQABo3cwdTAJBgNV
|
|
15
|
+
HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU3O4dTXmvE7YpAkszGzR9DdL9
|
|
16
|
+
sbEwHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv
|
|
17
|
+
bnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAVKTfoLXn7mqdSxIR
|
|
18
|
+
eqxcR6Huudg1jes81s1+X0uiRTR3hxxKZ3Y82cPsee9zYWyBrN8TA4KA0WILTru7
|
|
19
|
+
Ygxvzha0SRPsSiaKLmgOJ+61ebI4+bOORzIJLpD6GxCxu1r7MI4+0r1u1xe0EWi8
|
|
20
|
+
agkVo1k4Vi8cKMLm6Gl9b3wG9zQBw6fcgKwmpjKiNnOLP+OytzUANrIUJjoq6oal
|
|
21
|
+
TC+f/Uc0TLaRqUaW/bejxzDWWHoM3SU6aoLPuerglzp9zZVzihXwx3jPLUVKDFpF
|
|
22
|
+
Rl2lcBDxlpYGueGo0/oNzGJAAy6js8jhtHC9+19PD53vk7wHtFTZ/0ugDQYnwQ+x
|
|
23
|
+
oml2fAAuVWpTBCgOVFe6XCQpMKopzoxQ1PjKztW2KYxgJdIBX87SnL3aWuBQmhRd
|
|
24
|
+
i9zWxov0mr44TWegTVeypcWGd/0nxu1+QHVNHJrpqlPBRvwQsUm7fwmRInGpcaB8
|
|
25
|
+
ap8wNYvryYzrzvzUxIVFBVM5PacgkFqRmolCa8I7tdKQN+R1
|
|
26
|
+
-----END CERTIFICATE-----
|