SOA Patterns > Service Governance Patterns > Service Refactoring
Service Refactoring (Erl)
How can a service be evolved without impacting existing consumers?
Problem
The logic or implementation technology of a service may become outdated or inadequate over time, but the service has become too entrenched to be replaced.
Solution
The service contract is preserved to maintain existing consumer dependencies, but the underlying service logic and/or implementation are refactored.
Application
Service logic and implementation technology are gradually improved or upgraded but must undergo additional testing.
Impacts
This pattern introduces governance effort as well as risk associated with potentially negative side-effects introduced by new logic or technology.
Architecture
Service
All parts of a service architecture abstracted by its contract can potentially be refactored without compromising existing consumer relationships. The service contract and the remaining, externally facing message processing agents (red) are not affected by the refactoring effort.
Related Patterns in This Catalog
Concurrent Contracts, Contract Centralization, Decoupled Contract, Distributed Capability, Proxy Capability, Service Decomposition, Service Façade, Service Normalization, Validation Abstraction
Related Service-Oriented Computing Goals
Increased Organizational Agility, Increased Vendor Diversification Options, Reduced IT Burden