- [Feature] Provide out of the box encryption support for Pro.
- [Improvement] Add instrumentation upon
#pause
. - [Improvement] Add instrumentation upon retries.
- [Improvement] Assign
#id
to consumers similar to other entities for ease of debugging. - [Improvement] Add retries and pausing to the default
LoggerListener
. - [Improvement] Introduce a new final
terminated
state that will kick in prior to exit but after all the instrumentation and other things are done. - [Improvement] Ensure that state transitions are thread-safe and ensure state transitions can occur in one direction.
- [Improvement] Optimize status methods proxying to
Karafka::App
. - [Improvement] Allow for easier state usage by introducing explicit
#to_s
for reporting. - [Improvement] Change auto-generated id from
SecureRandom#uuid
toSecureRandom#hex(6)
- [Improvement] Emit statistic every 5 seconds by default.
- [Improvement] Introduce general messages parser that can be swapped when needed.
- [Fix] Do not trigger code reloading when
consumer_persistence
is enabled. - [Fix] Shutdown producer after all the consumer components are down and the status is stopped. This will ensure, that any instrumentation related Kafka messaging can still operate.
Upgrade notes
If you want to disable librdkafka
statistics because you do not use them at all, update the kafka
statistics.interval.ms
setting and set it to 0
:
class KarafkaApp < Karafka::App
setup do |config|
# Other settings...
config.kafka = {
'statistics.interval.ms': 0
}
end
end