====== 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.