Hi folks, It would be useful to add a generic event listener interface to Polaris, consistent with other OSS projects. Users of the project may require additional functionality that doesn't have a clear enough value proposition to be in OSS. Instead, there can be event listeners that let you hook into various parts of the Polaris functionality (i.e. "before table commit") without OSS prescribing the limits of the extra functionality.
Here are some examples of the shape of changes this would help: - https://github.com/apache/polaris/pull/458 - https://github.com/apache/polaris/pull/155 - https://github.com/apache/polaris/pull/423 - Modification to application startup (i.e. by registering new Jersey resources) - Further observability changes In all of these cases we can (and sometimes have) introduced new ad-hoc interfaces to allow pluggable behavior, but I believe it's more scalable to have a single event listener interface whose number of events grows over time. The intent is also not to reduce the amount of contributions to OSS, but rather keep the changes focused and vendor-agnostic. Here are some example implementations in other OSS projects: - https://spark.apache.org/docs/3.5.3/api/java/org/apache/spark/scheduler/SparkListener.html - https://heroiclabs.com/docs/nakama/guides/server-framework/using-hooks/ I'm waiting for the Quarkus work to settle before suggesting a concrete implementation, as I heard Quarkus might make it easy to intercept method calls, but I did want to gather thoughts in the interim. Andrew