Hi, Anuj,

- Classes annotated with @Internal are not public API and thus might
change across any two releases.
- Classes annotated with @Experimental are for experimental use. They
can be changed across any two releases as well.
- Classes annotated with @PublicEvolving are intended for public use.
They are stable across patch releases (1.17.0 and 1.17.1), but can be
changed across minor releases (1.17.0 and 1.18.0).

You can refer to [1] for more details.

[1] 
https://cwiki.apache.org/confluence/display/FLINK/FLIP-196%3A+Source+API+stability+guarantees

Best,
Yangze Guo

On Wed, May 3, 2023 at 12:08 PM Anuj Jain <anuj...@gmail.com> wrote:
>
> Hi Community,
> I saw some flink classes annotated with
> @Experimental
> @PublicEvolving
> @Internal
>
> What do these annotations mean? Can I use these classes in production?
> How the class APIs would evolve in future. Can they break backward 
> compatibility in terms of API declaration or implementation, in minor or 
> major Flink releases.
>
> More specifically, I am trying to use AvroParquet reader/writers with File 
> source and sink operators and i saw some classes with these annotations like
> AvroParquetWriters (@Experimental)
> ParquetWriterFactory (@PublicEvolving  implements BulkWriter.Factory<T>)
> BulkWriter (@PublicEvolving)
> AvroParquetReaders (@Experimental)
> AvroParquetRecordFormat (implements StreamFormat (@PublicEvolving))
> StreamFormatAdapter (@Internal)
> StreamFormat (@PublicEvolving)
>
> Are they safe to use ?
>
> Appreciate your feedback.
>
> Regards
> Anuj

Reply via email to