class CheramiConsumerImpl implements CheramiConsumer, Reconfigurable {

    @Override
    public synchronized void open() throws InterruptedException, IOException {
        if (!isOpen()) {
            String clientName = this.client.getOptions().getClientAppName();
            this.tChannel = new TChannel.Builder(String.format("%s_%s", clientName, consumerGroupName)).build();
            this.subChannel = tChannel.makeSubChannel(OUTPUT_SERVICE_NAME);
            // open connmanager only after creating subchannel
            connectionManager.open();
            new Thread(deliveryRunnable).start();
            isOpen.set(true);
            logger.info("Consumer opened.");
        }
    }

    public  CheramiConsumerImpl(CheramiClient client, String dstPath, String consumerGroupName, ConsumerOptions options,
            MetricsReporter metricsReporter);

}