SOA Patterns > Service Governance Patterns > Compatible Change
Compatible Change (Orchard, Riley)
How can a service contract be modified without impacting consumers?
![Compatible Change Compatible Change](https://patterns.arcitura.com/wp-content/uploads/2018/09/compatible_change.png)
Problem
Changing an already-published service contract can impact and invalidate existing consumer programs.
Solution
Some changes to the service contract can be backwardscompatible, thereby avoiding negative consumer impacts.
Application
Service contract changes can be accommodated via extension or by the loosening of existing constraints or by applying Concurrent Contracts.
Impacts
Compatible changes still introduce versioning governance effort, and the technique of loosening constraints can lead to vague contract designs.
Principles
Architecture
Service
![Compatible Change: The existing capability is not renamed. Instead, a new capability with a new name is added alongside the original capability, thereby preserving compatibility with both Consumers A and B. Compatible Change: The existing capability is not renamed. Instead, a new capability with a new name is added alongside the original capability, thereby preserving compatibility with both Consumers A and B.](https://patterns.arcitura.com/wp-content/uploads/2018/09/fig1-48.png)
Related Patterns in This Catalog
Canonical Versioning, Concurrent Contracts, Termination Notification, Validation Abstraction, Version Identification
Related Service-Oriented Computing Goals
This page contains excerpts from:
SOA Design Patterns by Thomas Erl
(ISBN: 0136135161, Hardcover, Full-Color, 400+ Illustrations, 865 pages)
For more information about this book, visit www.arcitura.com/books.
This page contains excerpts from:
Web Service Contract Design and Versioning for SOA
by Thomas Erl, Anish Karmarkar, Priscilla Walmsley, Hugo Haas, Umit Yalcinalp, Canyang Kevin Liu, David Orchard, Andre Tost, James Pasley
For more information about this book, visit www.arcitura.com/books.