Apache Ignite uses
org.apache.ignite.lang.IgniteExperimental for Java and
Apache.Ignite.Core.Common.IgniteExperimentalAttribute for C# to mark API elements which correspond to features and APIs which are in early access and are allowed to be changed in forthcoming releases. The purpose of such APIs is to allow users to get an early access to new features and provide valuable feedback to Apache Ignite development community before the API is 'frozen'.
When the annotation/attribute is used, the API element documentation should provide a corresponding note as well.
Apache Ignite uses API deprecation via java.lang.Deprecated annotation to mark APIs which are no longer recommended for use because either there is a better counterpart that is preferred for use, or the community decided to remove the API element or the feature altogether at some future release.
The old APIs must be never deprecated unless the new APIs are stable and released without
@IgniteExperimental. The old APIs javadoc may be updated with a reference to new APIs to encourage users to evaluate new APIs. The deprecation and new API release may happen simultaneously if the new API is not marked with
@IgniteExperimental or the annotation is removed in the same release. It is allowed to make deprecation of an API without a replacement if community decided so.