public KafkaReplyWorker(ILogger <KafkaReplyWorker> logger,
                         KafkaRequestReplyGroup replyGroup,
                         RequestReplyImplementation <TransactionRequest, TransactionReply> reqRep,
                         KafkaConsumer <TransactionReply> consumer)
 {
     this.logger     = logger;
     this.replyGroup = replyGroup;
     this.reqRep     = reqRep;
     this.consumer   = consumer;
 }
        public RequestReplyImplementation(KafkaSender <TRequest> sender,
                                          ILogger <RequestReplyImplementation <TRequest, TReply> > logger,
                                          KafkaRequestReplyGroup replyGroup,
                                          ITracer tracer)
        {
            this.sender     = sender;
            this.logger     = logger;
            this.replyGroup = replyGroup;
            this.tracer     = tracer;

            // Note: we could leak memory over time here. Not a problem for this demo
            pendingRequests = new ConcurrentDictionary <string, TReply>();
        }