Currently, we are setting the JVM property -Dclojure.core.async.pool-size=1 in order to ensure that core.async only uses one thread to ensure that no more than one thread accesses the underlying KafkaConsumer. This is to prevent the dreaded error that results from multithreaded access to the consumer.
This is obviously a total hack. It would be better to have some other mechanism to ensure that only a single thread ever accesses the KafkaConsumer, even when handling multiple CLI requests in rapid succession. Ideally, it won't require changing much core.async code.