Description
Use a service locator pattern to find UDFs that can be registered. The service loader can be used to register UDFs for standard functions via DSL SQL, additional UDFs registered by third party libraries, and end user created UDFs.
Example ServiceLoader usage within Apache Beam to find coder providers:
https://github.com/apache/beam/blob/7126fdc6ee5671e99a2dede3f25ba616aa0e8fa4/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java#L147