A ConTract is an extended transaction model that employs transactional mechanisms in order to provide a run-time environment for the reliable execution of long-lived, workflow-like computations. The focus is on durable execution and on correctness guarantees with respect to the effects of such computations on shared data.
The notion of a ConTract (concatenated transactions) combines the principles of workflow programing with the ideas related to long-lived transactions. The ConTract model is based on a two-tier programing approach. At the top level, each ConTract is a script describing a (long-lived) computation. The script describes the order of execution of so-called steps. A step is a predefined unit of execution (e.g., a service invocation) with no visible internal structure. A step can access shared data in a database, send messages, etc.
A ConTract, once it is started, will never be lost by the system, no matter which technical problems (short of a real...
- 1.Reuter A, Waechter H. The ConTract model. In: Stonebraker M, Hellerstein J, editors. Readings in database in database systems. 2nd ed. Los Altos: Morgan Kaufmann; 1992. p. 219–63.Google Scholar