- [Breaking] Drop Ruby
3.0
support according to the EOL schedule. - [Enhancement] Support listeners inspection via
#listeners
. - [Fix] Restore
#available_events
notifications bus method. - [Change] Set minimum
karafka-rdkafka
on0.17.6
to support new features.
- [Change] Set minimum
karafka-rdkafka
on0.16.0
to support new features and allow for0.17.0
.
- [Fix] Use
Object
instead ofBasicObject
for rule result comparison because of Time mismatch with BasicObject.
- [Enhancement] Allow
karafka-rdkafka
0.16.x
to be used since API compatible.
- [Enhancement] Provide fast-track for events without subscriptions to save on allocations.
- [Enhancement] Save memory allocation on each contract rule validation execution.
- [Enhancement] Save one allocation per
float_now
+ 2-3x performance by using the Posix clock instead ofTime.now.utc.to_f
. - [Enhancement] Use direct
float_millisecond
precision inmonotonic_now
not to multiply by 1000 (allocations and CPU savings). - [Enhancement] Save one array allocation on one instrumentation.
- [Enhancement] Allow clearing one event type (dorner).
- [Breaking] Drop Ruby
2.7
support. - [Enhancement] Provide necessary alterations for custom oauth token callbacks to operate.
- [Change] Set minimum
karafka-rdkafka
on0.15.0
to support new features.
- [Change] Set minimum
karafka-rdkafka
on0.14.8
to support new features. - [Change] Remove
concurrent-ruby
usage.
- [Change] Set minimum
karafka-rdkafka
on0.13.9
to support alternative consumer builder.
- [Enhancement] Set backtrace for errors propagated via the errors callbacks.
- [Change] Drop support for Ruby 2.6 due to incompatibilities in usage of
ObjectSpace::WeakMap
- [Change] Set minimum
karafka-rdkafka
on0.13.8
to support consumer#position
.
- [Enhancement] Allow for
lazy
evaluated constructors. - [Enhancement] Allow no-arg constructors.
- [Change] Set minimum
karafka-rdkafka
on0.13.6
.
- [Fix] Reuse previous frozen duration as a base for incoming computation.
- Optimize statistics decorator by minimizing number of new objects created.
- Expand the decoration to include new value
_fd
providing freeze duration in milliseconds. This value informs us for how many consecutive ms the given value did not change. It can be useful for detecting values that should change once in a while but are stale.
- [Maintenance] Update the signing cert (old expired)
- [Change] Set minimum
karafka-rdkafka
on0.13.1
.
- [Change] Set
karafka-rdkafka
requirement from>= 0.13.0
to<= 0.14.0
. - [Change] Remove no longer needed patch.
- Set minimum
karafka-rdkafka
on0.12.3
.
- Introduce ability to tag certain objects by including the
Karafka::Core::Taggable
module.
- Set minimum
karafka-rdkafka
on0.12.1
.
- Move
RspecLocator
to core.
- Use
karafka-rdkafka
instead ofrdkafka
. This change is needed to ensure that all consecutive releases are stable and compatible. - Relax Ruby requirement to
2.6
. It does not mean we officially support it but it may work. Go to Versions Lifecycle and EOL for more details.
- Add
Karafka::Core::Helpers::Time
utility for time reporting.
- Allow for recompilation of config upon injecting new config nodes.
- Compile given config scope automatically after it is defined.
- Support sub-config merging via their nested definitions.
- Reverse node compilation state tracking removal.
- Move
librdkafka
generic (producer and consumer) patches from WaterDrop here. - Move dependency on
librdkafka
here from both Karafka and WaterDrop to unify management. - Move
CallbacksManager
from WaterDrop because it's shared.
- Disallow publishing events that were not registered.
- Fix a potential race condition when adding listeners concurrently from multiple threads.
- Maintenance release. Cert chain update. No code changes.
- Add extracted statistics decorator (#932)
- Fix a case where setting would match a method monkey-patched on an object (#1) causing initializers not to build proper accessors on nodes. This is not the core bug, but still worth handling this case.
- Initial extraction of common components used in the Karafka ecosystem from WaterDrop.