Re: [DISCUSS] public API classes in Apache Kafka

2025-12-17 Thread Ashwin via dev
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

Re: [DISCUSS] public API classes in Apache Kafka

2025-12-17 Thread Christopher Shannon
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

Re: [DISCUSS] public API classes in Apache Kafka

2025-12-17 Thread Josep Prat via dev
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

Re: [DISCUSS] public API classes in Apache Kafka

2025-12-17 Thread Josep Prat via dev
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

[DISCUSS] public API classes in Apache Kafka

2025-12-17 Thread Ashwin via dev
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