While I'm currently working on using librdkafka, I believe this question is relevant for any third party client due to reading this exchange:
I'm testing with a single 0.8.2.1 broker. When I start the broker with no prior state (so totally fresh zookeeper & no topics), and I use librdkafka to send an OffsetFetchRequest for a test topic & consumer group, it receives the 'not coordinator for consumer' error.
If I then use the kafka-console-producer & kafka-console-consumer to push & pull data using a different topic and consumer group (specifying "offsets.storage=kafka"), I see that the __consumer_offsets topic has been created. I can then issue a OffsetFetchRequest with the original topic & group, I see the expected reply of success with an offset of -1.
So how is the consumer api triggering __consumer_offsets creation?