Compensating Service Transaction (Utschig, Maier, Trops, Normann, Winterberg, Loesgen, Little)
How can composition runtime exceptions be consistently accommodated without requiring services to lock resources?
Problem
Whereas uncontrolled runtime exceptions can jeopardize a service composition, wrapping the composition in an atomic transaction can tie up too many resources, thereby negatively affecting performance and scalability.
Solution
Compensating routines are introduced, allowing runtime exceptions to be resolved with the opportunity for reduced resource locking and memory consumption.
Application
Compensation logic is pre-defined and implemented as part of the parent composition controller logic or via individual "undo" service capabilities.
Impacts
Unlike atomic transactions that are governed by specific rules, the use of compensation logic is open-ended and can vary in its actual effectiveness.
Principles
Service Loose CouplingArchitecture
Inventory, CompositionListen to the podcasts that accompany this site
Compensating transactions do not require that resources be locked or that the original state be preserved.
Related Patterns in This Catalog
Atomic Service Transaction, Canonical Resources, Contract Denormalization, Messaging Metadata
Related Service-Oriented Computing Goals
This page contains excerpts from:
SOA Design Patterns by Thomas Erl
Foreword by Grady Booch
With contributions from David Chappell, Jason Hogg, Anish Karmarkar, Mark Little, David Orchard, Satadru Roy, Thomas Rischbeck, Arnaud Simon, Clemens Utschig, Dennis Wisnosky, and others.
(ISBN: 0136135161, Hardcover, Full-Color, 400+ Illustrations, 865 pages)
For more information about this book, visit www.servicetechbooks.com.
Arcitura IT Certified Professionals (AITCP)
Arcitura IT Certified Professionals (AITCP)
Arcitura IT Certified Professionals (AITCP)
Arcitura YouTube Channel
