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

Reply via email to