Service API Patterns, Protocols, Coupling Types, Metrics > Fundamental Service API Patterns > Service Façade
How can a service accommodate changes to its API or implementation while allowing its core logic to evolve independently?
Services with standardized APIs have high logic-to-API coupling, which can conflict with how the service may need to be augmented in response to new requirements. With the application of the Service Façade pattern, the underlying service implementation can contain a façade component which enables the abstraction of a core body of service logic from the API. This allows for additional façades and APIs to be added to the same service. The abstraction achieved through the use of façade components furthermore allows for the addition of multiple service APIs without major impact to the core service logic.
Because a façade component isolates processing specific to Service API A (a REST API), a second façade can be added to support Service API B (a non-REST API) without impacting the underlying service logic. Note that the underlying service logic is qualified as “core” service logic to distinguish it from the API-specific logic abstracted in the façade components.