Home > Design Patterns > Service Refactoring
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.

Service Refactoring: 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.

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.