Skip to content

Releases: karafka/waterdrop

v2.6.4

11 Jul 14:15
873ccc0
Compare
Choose a tag to compare

[Improvement] Use original error #inspect for WaterDrop::Errors::ProduceError and WaterDrop::Errors::ProduceManyError instead of the current empty string.

v2.6.3

28 Jun 15:09
7fee3d5
Compare
Choose a tag to compare
  • [Change] Use Concurrent::AtomicFixnum to track operations in progress to prevent potential race conditions on JRuby and TruffleRuby (not yet supported but this is for future usage).
  • [Change] Require karafka-rdkafka >= 0.13.2.
  • [Change] Require 'karafka-core' >= 2.1.1

v2.6.2

21 Jun 10:32
2578f3f
Compare
Choose a tag to compare
  • [Refactor] Introduce a counter-based locking approach to make sure, that we close the producer safely but at the same time not to limit messages production with producing lock.
  • [Refactor] Make private methods private.
  • [Refactor] Validate that producer is not closed only when attempting to produce.
  • [Refactor] Improve one 5 minute long spec to run in 10 seconds.
  • [Refactor] clear client assignment after closing.

v2.6.1

19 Jun 14:31
a15b0a2
Compare
Choose a tag to compare
  • [Refactor] Remove no longer needed patches.
  • [Fix] Fork detection on a short lived processes seems to fail. Clear the used parent process client reference not to close it in the finalizer (#356).
  • [Change] Require karafka-rdkafka >= 0.13.0.
  • [Change] Require 'karafka-core' >= 2.1.0

v2.6.1.beta1

17 Jun 15:47
c14f3b5
Compare
Choose a tag to compare
v2.6.1.beta1 Pre-release
Pre-release
  • [Refactor] Remove no longer needed patches.
  • [Fix] Fork detection on a short lived processes seems to fail. Clear the used parent process client reference not to close it in the finalizer (#356).
  • [Change] Require karafka-rdkafka >= 0.13.0.beta2.
  • [Change] Require 'karafka-core' >= 2.1.0

v2.6.0

12 Jun 07:11
025c0df
Compare
Choose a tag to compare
  • [Improvement] Introduce client_class setting for ability to replace underlying client with anything specific to a given env (dev, test, etc).
  • [Improvement] Introduce Clients::Buffered useful for writing specs that do not have to talk with Kafka (id-ilych)
  • [Improvement] Make #produce method private to avoid confusion and make sure it is not used directly (it is not part of the official API).
  • [Change] Change wait_on_queue_full from false to true as a default.
  • [Change] Rename wait_on_queue_full_timeout to wait_backoff_on_queue_full to match what it actually does.
  • [Enhancement] Introduce wait_timeout_on_queue_full with proper meaning. That is, this represents time after which despite backoff the error will be raised. This should allow to raise an error in case the backoff attempts were insufficient. This prevents from a case, where upon never deliverable messages we would end up with an infinite loop.
  • [Fix] Provide type for queue full errors that references the appropriate public API method correctly.

v2.5.3

26 May 14:44
6b87cf6
Compare
Choose a tag to compare
  • Require karafka-core 2.0.13
  • Include topic name in the error.occurred notification payload.
  • Include topic name in the message.acknowledged notification payload.

v2.5.2

26 May 14:43
3a9d16b
Compare
Choose a tag to compare

[Fix] Require missing Pathname (#345)

v2.5.1

09 Mar 10:27
3a9d16b
Compare
Choose a tag to compare
  • [Feature] Introduce a configurable backoff upon librdkafka queue full (false by default).

v2.5.0

04 Mar 11:58
ecc686a
Compare
Choose a tag to compare
  • [Feature] Pipe all the errors including synchronous errors via the error.occurred.
  • [Improvement] Pipe delivery errors that occurred not via the error callback using the error.occurred channel.
  • [Improvement] Introduce WaterDrop::Errors::ProduceError and WaterDrop::Errors::ProduceManyError for any inline raised errors that occur. You can get the original error by using the #cause.
  • [Improvement] Include #dispatched messages handler in the WaterDrop::Errors::ProduceManyError error, to be able to understand which of the messages were delegated to librdkafka prior to the failure.
  • [Maintenance] Remove the WaterDrop::Errors::FlushFailureError in favour of correct error that occurred to unify the error handling.
  • [Maintenance] Rename Datadog::Listener to Datadog::MetricsListener to align with Karafka (#329).
  • [Fix] Do not flush when there is no data to flush in the internal buffer.
  • [Fix] Wait on the final data flush for short-lived producers to make sure, that the message is actually dispatched by librdkafka or timeout.