utility to enable flexible ETL scenarios, supports golang plug-in for built-in consumer|transformer|producer options
consumer’s EventHandler could choose desired flow for every event received
if no transformation is required for this
consumer
, the Producer could be triggered directly as well
here all 3,
consumer
,transformer
andproducer
are instantiated as per config and thus any combination of available types could be brought into play all 3 support usage of plugin, so separately managed and developed constructs could be used in combination
this package provides a
Consume(consumer)
method to be able to munch on any kafka-topic,currently
confluent-kafka
implementation for consumer is available and can be configured and passed
topic subscriber currently handles
- for each messages recieved, invoke
ogi's tansformer
with producer and value from message- assign partition
- unassign partition
- exit on error event
this package provides a
Produce(producer, topic, message)
method to be able to churn out required message to any topic on provided producer,currently
confluent-kafka
implementation for producer is available which can be configured and passed
confluent-kafka
producer let’s figure out a partition for message using CRC32 over total partition count, if can’t uses PartitionAny confthen message and topic gets produced to the calculated partition using
ProduceMessage
this package provides
Transform(producer, message)
method which calls delegates transform to configuredLogTransformer
for that process,currently
KubernetesKafkaLog
is available implementation ofLogTransformer
KubernetesKafkaLog
which checks for Kubernetes.Labels for configured label to be picked as destination kafka topicit applies Kubernetes.PodName as message-key to be used and then produces message to passed through producer