class KafkaOperations implements AutoCloseable {

    public boolean createTopic(final CreateTopic createTopic) {
        final NewTopic newTopic = new NewTopic(
            createTopic.getName(),
            createTopic.getNumberOfPartitions(),
            createTopic.getReplicaFactor()
        );

        try {
            // Create the topic
            final CreateTopicsResult result = adminClient.createTopics(Collections.singleton(newTopic));

            // Wait for the async request to process.
            result.all().get();

            // return true?
            return true;
        } catch (final ExecutionException e) {
            throw handleExecutionException(e);
        } catch (final InterruptedException exception) {
            // TODO Handle this
            throw new RuntimeException(exception.getMessage(), exception);
        }
    }

    public  KafkaOperations(final AdminClient adminClient, final KafkaConsumer<String, String> consumerClient);

}