ServiceProviderInterfaces
ServiceProviderInterfaces refer to the set of interfaces defined by a host application to describe the services that a provider can offer. The interfaces establish the contracts that providers must implement, allowing the host to interact with diverse implementations without depending on concrete classes. This decoupling enables pluggability, extensibility, and runtime substitution of providers.
In practice, an SPI-based design centers on a clear surface area that providers implement and a discovery
Key considerations in designing service provider interfaces include stability and versioning, as changes to the SPI
Common domains for service provider interfaces include frameworks, libraries, modular applications, and tooling that support plugins