Yuto Kawamura created KAFKA-3616:
------------------------------------

             Summary: Make kafka producers/consumers injectable for KafkaStreams
                 Key: KAFKA-3616
                 URL: https://issues.apache.org/jira/browse/KAFKA-3616
             Project: Kafka
          Issue Type: Improvement
          Components: streams
    Affects Versions: 0.10.1.0
            Reporter: Yuto Kawamura
            Assignee: Yuto Kawamura


While playing with Kafka Streams I found that there's some cases that we want 
to take control of kafka producer/consumers instantiation inside the 
StreamThread.

Most significant case is that we have our own impl of kafka Producer which was 
built to provide much reliable message delivery but there's no way to inject 
our own instance into StreamTask ATM.
Another example is that we wanna observe the result of {{producer.send()}} that 
is done inside the RecordCollector. We can provide our own Callback instance 
but there's no way to inject that callback to RecordCollector again.

Here I'd like to suggest KafkaStreams giving an interface to inject these 
clients. I considered various approaches to do this like passing them through 
constructor or make instantiation methods overridable but eventually tried to 
simply intorude another argument to the KafkaStreams constructor which is 
responsible for supplying client instances.

Incomplete PR will be filled up to show changeset in my mind, so please give me 
feedbacks. Will follow-up PR quickly if I get positive feedback.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to