SOA Patterns > Service Governance Patterns > Service Refactoring
Service Refactoring (Erl)
How can a service be evolved without impacting existing consumers?
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.
The service contract is preserved to maintain existing consumer dependencies, but the underlying service logic and/or implementation are refactored.
Service logic and implementation technology are gradually improved or upgraded but must undergo additional testing.
This pattern introduces governance effort as well as risk associated with potentially negative side-effects introduced by new logic or technology.
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