Contract Centralization (Erl)
How can direct consumer-to-implementation coupling be avoided?
Consumer programs can be designed to access underlying service resources using different entry points, resulting in different forms of implementation dependencies that inhibit the service from evolving in response to change.
Access to service logic is limited to the service contract, forcing consumers to avoid implementation coupling.
This pattern is realized through formal enterprise design standards and the targeted application of the Service Abstraction design principle.
Forcing consumer programs to access service capabilities and resources via a central contract can impose performance overhead and requires on-going standardization effort.
Through Contract Centralization we place the service contract front and center within a service architecture. This is why much of service-orientation is focused on contract design.