Hi, Kafka has public APIs in Java and Scala, intended for use by external developers. In addition, Kafka also exposes many public methods that are intended to use within Kafka but are not intended to be called by external developers. Also, some of the external APIs are less stable than others (the new producer for example).
In Hadoop we have a similar situation, and to avoid misunderstandings or miscommunications on which APIs are external and which are stable, we use annotations to communicate this information. We find it very useful in preventing our customers from accidentally getting into trouble by using internal methods or unstable APIs. Here are the annotations Hadoop uses: https://hadoop.apache.org/docs/current/api/src-html/org/apache/hadoop/classification/InterfaceStability.html https://hadoop.apache.org/docs/current/api/src-html/org/apache/hadoop/classification/InterfaceAudience.html I'm wondering what others think about using something similar in Kafka. Gwen