====== GPR-019 — Implementation Replacement Without Client Changes ======
[[public:00-sip-ra:99-annexes:annex-c-requirements:start|Go to Annex C: Requirements]]
===== Statement =====
An implementation SHOULD be replaceable by an alternative implementation satisfying the same applicable [[public:99_annexes:annex-b-terms-and-definitions:i:interface|Interface Contracts]] and conformance conditions without requiring changes to conforming clients.
===== Requirement Level =====
Recommended
===== Rationale =====
Replacement without client changes reduces implementation coupling, migration cost, operational disruption, and dependence on a particular product or vendor.
A conforming client should depend on standardized Interfaces, externally observable behavior, and applicable conformance conditions rather than implementation-specific behavior or internal design choices.
===== Evaluation Criteria =====
A Submission satisfying this recommendation demonstrates that:
- Applicable Interface Contracts and conformance conditions are sufficient to support implementation replacement
- Conforming clients depend only on standardized Interfaces and externally observable behavior
- Replacing an implementation with a conforming alternative does not require changes to conforming clients
- Implementation-specific extensions are distinguishable from standardized capabilities
- Dependencies that could prevent implementation replacement are identified
- Any departure from this recommendation is identified and justified
===== Referenced By =====
{{backlinks>public:00-sip-ra:99-annexes:annex-c-requirements:gpr-019-implementation-replacement-without-client-changes}}
===== Notes for Editors =====
This requirement uses ''SHOULD'' and is therefore a recommendation.
The requirement applies when the original and replacement implementations satisfy the same applicable Interface Contracts and conformance conditions.
A client that depends on implementation-specific extensions, undocumented behavior, or capabilities outside the proposed specification may require changes when the implementation is replaced. Such a client is not conforming with respect to those dependencies.
To transclude the authoritative Statement into another page, use:
{{section>public:00-sip-ra:99-annexes:annex-c-requirements:gpr-019-implementation-replacement-without-client-changes#Statement&noheader&nofooter&noeditbtn}}
----
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.