Hi all, Recently it became apparent that the community has no single opinion about what an integration point that downstream consumers can rely on in terms of availability, stability and most importantly functional and behavioral contracts is.
The Polaris code base itself is still pretty fresh/young, started about one year ago. It is quite natural that things are not yet optimal and evolution and changes happen to meet everybody’s expectations and the project’s needs now and in/for the future. Polaris is an open source project to be used by many users. Many run it “as is” (aka as distributed by the Apache Polaris project) and some use it as a foundation to customize it with their own functionalities. The overarching goal of the project is (I think) providing a stable system (runtime) without neglecting the necessities (like security) while improving the observed behavior (like performance) and being open for new features & functionalities and consistently+constantly removing tech-debt. Two recent PRs simplifying some code complexities in Apache Polaris and fixing runtime penalties for all Polaris users received reviews mentioning a “...service provider with a custom persistence backend…” [1] and "...production deployment … with custom implementations..." [2]. As the Apache Polaris project has no clear definition of which parts of the code base are extension points (think: SPIs), it is impossible for contributors to Apache Polaris to know what a “breaking change” for “custom implementations” is. I would like to start this discussion and look forward to the community’s opinion, both from users that use Polaris “as is” and those who “extend Polaris”. Robert PS: The contributing guidelines [3] do not define what public interfaces are. [1] https://github.com/apache/polaris/pull/2262#pullrequestreview-3099480896 [2] https://github.com/apache/polaris/pull/2277#pullrequestreview-3099564976 [3] https://polaris.apache.org/community/contributing-guidelines/