The promise of elastic scaling on the cloud is not free. Cloud applications must use idioms like data partitioning and replication, which add significant programming complexity. Molecular transactions are an abstraction for programming against a partitioned store. A molecular transaction is a fault tolerant composition of atomic transactions with compensating actions. Molecular transactions can be implemented efficiently on the cloud and used to specify workflows in many real applications.
- G Ramalingam and Kapil Vaswani, Fault Tolerance via Idempotence, in Principles of Programming Languages (POPL), ACM, January 2013.