Abstract
A typical e-business transaction takes hours or days to complete, involves a number of partners, and comprises many failure points. With short-lived transactions, database systems ensure atomicity by either committing all of the elements of the transaction, or by canceling all of them in case of a failure. With typical e-business transactions, strict atomicity is not practical, and we need a way of reversing the effects of those activities that cannot be rolled back: that is compensation. For a given business process, identifying the various failure points, and designing the appropriate compensation processes represents the bulk of process design effort. Yet, business analysts have little or no guidance. For a given failure point, there appears to be an infinite variety of ways to compensate for it. We recognize that compensation is a business issue, but we argue that it can be explained in terms of a handful of parameters within the context of the REA ontology, including things such as the type of activity, the type of resource, and organizational policies. We propose a three-step compensation design approach that 1) starts by abstracting a business process to focus on those activities that create/modify value, 2) compensates for those activities, individually, based on values of the compensation parameters, and 3) composes those compensations using a Saga-like approach. In this paper, we present our approach along with an implementation algorithm and propose a business ontology for compensation design.