Ruby and Rails efficient Kafka processing framework
OTHER License
Bot releases are visible (Hide)
Published by mensfeld over 1 year ago
karafka-core
on 2.0.13
to make sure correct version of karafka-rdkafka
is used.waterdrop
on 2.5.3
to make sure correct version of waterdrop
is used.Published by mensfeld over 1 year ago
Published by mensfeld over 1 year ago
Karafka::Pro::BaseConsumer
in favor of Karafka::BaseConsumer
. (#1345)max_messages
and max_wait_time
not having reference in errors.yml (#1443)Published by mensfeld over 1 year ago
Karafka::Pro::Iterator
for anonymous topic/partitions iterations and messages lookups (#1389 and #1427).read_topic
admin method usage.LoggerListener
information about the partition on which a given job has started and finished.LoggerListener
format. Always report partition-related operations as follows: TOPIC_NAME/PARTITION
.unknown_topic_or_part
when Karafka is shutting down as there is no point and no risk of any data losses.client.software.name
and client.software.version
according to librdkafka
recommendation.Published by mensfeld over 1 year ago
Karafka::Messages::Messages#empty?
method to handle Idle related cases where shutdown or revocation would be called on an empty messages set. This method allows for checking if there are any messages in the messages batch.Karafka::Messages::Messages
)librdkafka
)Published by mensfeld over 1 year ago
#retrying?
method has been added to consumers to provide ability to check, that we're reprocessing data after a failure. This is useful for branching out processing based on errors.Idle
for non-consumption execution flows.Coordinator#synchronize
lock for cross virtual partitions operations.LoggerListener
cases where logs would not include caller id (when available)#seek
so they can run independently from the consumption flow.#mark_as_consumed
and #mark_as_consumed!
into Strategies::Default
to be able to introduce marking for virtual partitions.Published by mensfeld over 1 year ago
Karafka::Admin#read_watermark_offsets
to get low and high watermark offsets values.#read_topic
reading in case of a compacted partition where the offset is below the low watermark offset. This should optimize reading and should not go beyond the low watermark offset.#read_topic
to accept instance settings to overwrite any settings needed to customize reading behaviours.Published by mensfeld over 1 year ago
Published by mensfeld over 1 year ago
Structurable
to Declaratives
for declarative topics feature.Published by mensfeld over 1 year ago
You can read about this feature here: karafka.io/docs/Topics-management-and-administration/
Published by mensfeld over 1 year ago
embedded
tag to Karafka processes started using the embedded API.Datadog::Listener
to Datadog::MetricsListener
for consistency. (#1124)Published by mensfeld over 1 year ago
perform_all_later
in ActiveJob adapter for Rails 7.1+
Karafka::Process
.ActiveJob
adapter, automatically tag jobs with the name of the ActiveJob
class that is running inside of the ActiveJob
consumer.::Karafka::Instrumentation::Notifications::EVENTS
list public for anyone wanting to re-bind those into a different notification bus.fetch.message.max.bytes
for Karafka::Admin
to 5MB
to make sure that all data is fetched correctly for Web UI under heavy load (many consumers).strict_topics_namespacing
config option to enable/disable the strict topics naming validations. This can be useful when working with pre-existing topics which we cannot or do not want to rename.Published by mensfeld over 1 year ago
unknown_topic_or_part
errors in dev when allow.auto.create.topics
is on.Published by mensfeld over 1 year ago
Admin#create_partitions
API.max_wait_timeout
on admin operations to five minutes to make sure no timeout on heavily loaded clusters.karafka-core
>= 2.0.11
and switch to shared RSpec locator.karafka-rdkafka
>= 0.12.1
Published by mensfeld over 1 year ago
--consumer-groups
with --include-consumer-groups
--subscription-groups
with --include-subscription-groups
--topics
with --include-topics
--exclude-consumer-groups
for ability to exclude certain consumer groups from running--exclude-subscription-groups
for ability to exclude certain subscription groups from running--exclude-topics
for ability to exclude certain topics from runningPublished by mensfeld over 1 year ago
Karafka#producer
instance has the LoggerListener
enabled in the install template, so Karafka by default prints both consumer and producer info.caller
for async errors is being published.2.4.10
or higher is used with this release to support Web-UI.Published by mensfeld over 1 year ago
#collapsed?
consumer method available for consumers using Virtual Partitions.#enhance_dlq_message
consumer method.original_consumer_group
in the DLQ dispatched messages in Pro.client_id
as kafka client.id
value by defaultIf you want to continue to use karafka
as default for kafka client.id
, assign it manually:
class KarafkaApp < Karafka::App
setup do |config|
# Other settings...
config.kafka = {
'client.id': 'karafka'
}
Published by mensfeld almost 2 years ago
karafka-core
.karafka-core
version is at least 2.0.9
to make sure we run karafka-rdkafka
.Published by mensfeld almost 2 years ago
active
to false. It will exclude them from consumption but will allow to have their definitions for using admin APIs, etc.read_topic
when reaching the last offset available on the request time.quiet
state that indicates that Karafka is not only moving to quiet mode but actually that it reached it and no work will happen anymore in any of the consumer groups.read_topic
admin API.client.pause
and client.resume
instrumentation hooks for tracking client topic partition pausing and resuming. This is alongside of consumer.consuming.pause
that can be used to track both manual and automatic pausing with more granular consumer related details. The client.*
should be used for low level tracking.LoggerListener
pause notification with one based on client.pause
instead of consumer.consuming.pause
.LoggerListener
with client.resume
notification.consumer.consume
, consumer.revoke
and consumer.shutting_down
notification events and move the revocation logic calling to strategies.processing
key to busy
. No changes needed because naming in the DataDog listener stays the same.LoggerListener
reporting so it does not end with .
.Published by mensfeld almost 2 years ago