Patent ID: 7478277

Claim:
A system for guaranteeing recovery in a computer system, comprising: a first persistent component; a second persistent component that interacts with the first persistent component via a committed interaction contract (CIC) that comprises a plurality of obligations for a message exchange between the first persistent component and the second persistent component, wherein the first persistent component sends a message to the second persistent component, the obligations comprising: the first persistent component reconstructs a message and its state as of a time of the message send, and ensures message uniqueness, when requested to do so by a component recovery procedure after a failure and the second persistent component detects and suppresses a message duplicate, and eventually guarantees persistence of its state as of a time of a message receive; and the first and second persistent components have a mutual agreement on when the CIC will be released, and at least one of an external component and a transactional component, wherein at least one of the external component and transactional component interacts with at least one of the first persistent component and the second persistent component via an interaction contract (IC) that comprises a plurality of obligations for a message exchange with one of the persistent components.