Hi Josep and Christopher,
Thanks for the feedback.
Josep, I agree with the idea of adding annotations. I was initially
considering a model similar to Hadoop’s Interface Classification (
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/InterfaceClassification.html),
which us
Apache Accumulo uses the APILyzer maven plugin for this purpose and it
works pretty well at preventing internal types from leaking into the
defined public API.
https://github.com/revelc/apilyzer-maven-plugin
https://code.revelc.net/apilyzer-maven-plugin/
I haven't found a similar Gradle plugin, b
I also thought about this particular problem some time ago and I was
thinking of proposing something similar as what Pekko does.
Pekko has 4 types of annotations that identify intent on what they class
can be used for:
- Internal and might change the API without further notice:
https://github.com/a
One of the first definitions I was told by committers when I joined the
project was that public API is anything that has a JavaDoc published.
I do agree however, that we could do a better job at marking public APIs or
marking non-public ones (whatever is easier).
Best,
On Wed, Dec 17, 2025 at 10
Hello Team,
While reviewing discussions regarding public APIs in Kafka, I noticed that
we lack a concrete, centralized definition of what constitutes a public
API. The most relevant information currently available is found here:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=5085