Hi everyone,

I would like to start a discussion about what kind of API stability
guarantees we want to provide to our users. The Flink community already
agreed on some stability guarantees, but these guarantees were only
communicated via the ML and not properly documented [2]. Moreover, I've
seen more and more complaints about breaking changes (some rightful and
others not) on the ML recently [3] because we rarely mark our APIs as
stable. This motivated this FLIP.

The proposal first concentrates on source API stability guarantees. Binary
stability guarantees are explicitly left out for a follow-up discussion.

In essence, the proposal follows our current stability guarantees while
updating the guarantees for @PublicEvolving that we are already providing
w/o having stated them. Moreover, this FLIP proposes some guidelines for
determining the stability guarantees for an API object, how to evolve them
and some additional requirements for the return and parameter types of
methods.

All in all, I hope that this proposal is more reflecting our current
understanding of stability guarantees than being controversial. One of the
outcomes of this FLIP should be to properly document these guarantees so
that it is easily discoverable and understandable for our users. Moreover,
I hope that we can provide more stable APIs our users can rely and build
upon.

There will be a follow-up FLIP discussing the problem of how to make sure
that APIs become stable over time.

Looking forward to your feedback.

[1] https://cwiki.apache.org/confluence/x/IJeqCw
[2] https://lists.apache.org/thread/5jm25783oq5svyk7rr8g1gly2ooxqhjr
[3] https://lists.apache.org/thread/kzhfc3t6omzo2kyo8zj9yxoh8twq5fzr

Cheers,
Till

Reply via email to