Upgrading to Karafka 2.3
Pro & Enterprise Upgrade Support
If you're gearing up to upgrade to the latest Karafka version and are a Pro or Enterprise user, remember you've got a dedicated lifeline! Reach out via the dedicated Slack channel for direct support to ensure everything has been covered.
As always, please make sure you have upgraded to the most recent version of 2.2
before upgrading to 2.3
.
Also, remember to read and apply our standard upgrade procedures.
Web UI Upgrade
Karafka 2.3
works only with Web UI >= 0.8.0
. Please follow the Web UI upgrade procedure.
Shutdown Procedure Updates
Thanks to recent advancements in librdkafka
and rdkafka-ruby
, shutdown patches needed in previous versions were removed in 2.3,
, and the whole shutdown procedure has been improved. While we saw only performance and stability improvements in those areas, we would like to highlight this change.
Potential CLI Inclusions/Exclusions Inconsistency Fix
While this change has already been introduced in 2.2
as a fix, we wanted to make you aware that all the CLI inclusion and exclusion options, such as --include-consumer-groups
or --exclude-consumer-groups
expect a list of arguments separated by a comma and NOT by space:
BAD:
# Wrong, topics separated with a space
bundle exec karafka server --exclude-topics topic1 topic2
GOOD:
# Good, topics separated with a comma
bundle exec karafka server --exclude-topics topic1,topic2
This change is a regression introduced because of the removal of the Thor gem.
concurrent-ruby
Removal
Karafka no longer relies on concurrent-ruby
. If you've indirectly relied on it being included in your applications, you must add it as a direct dependency yourself.
Kubernetes::LivenessListener
No Longer Starts until Karafka Server Starts
Before Karafka 2.3.0
, Kubernetes::LivenessListener
would start immediately after initialization. This is why it was recommended to create it conditionally by using an external flag similar to this one:
if ENV['KARAFKA_LIVENESS'] == true
listener = ::Karafka::Instrumentation::Vendors::Kubernetes::LivenessListener.new(
# config goes here...
)
Karafka.monitor.subscribe(listener)
end
Starting from 2.3
, such a flag is no longer needed as the listener begins listening on the desired port only when the associated Karafka server process is started. The listener will not bind itself to processes other than the Karafka server.