{'fraction_non_alphanumeric': 0.01417004048582996, 'fraction_numerical': 0.0, 'mean_word_length': 5.4640522875816995, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Formal Verification of a Transactional Interaction Contract

A transactional information system guarantees as part of the ACID contract that multiple operations pertaining to a transaction are executed atomically and that if completed their effect is durable. However, message losses resulting from client and server crashes are not part of the transaction. Unlike failures occurring in the midst of a transaction (leading to its abort), the loss of a reply to the final commit message poses a problem of determining the transaction outcome that cannot be solved generically using state-of-the-art OLTP systems. This paper develops a formal specification of a generic transactional interaction contract that is part of a broader Interaction Contracts framework guaranteeing the exactly-once execution in general multi-tier applications. The formal specification is designed and verified using the statechart language and model checking in the reactive system design tool called Statemate.