Kafka currently stores offsets in zookeeper. This is a problem for several reasons. First it means the consumer must embed the zookeeper client which is not available in all languages. Secondly offset commits are actually quite frequent and Zookeeper does not scale this kind of high-write load.
This Jira is for tracking the phase #2 of Offset Management . Joel and I have been working on this.  is the overall design of the feature.
 : https://cwiki.apache.org/confluence/display/KAFKA/Offset+Management
 : https://cwiki.apache.org/confluence/display/KAFKA/Inbuilt+Consumer+Offset+Management