Transactions and recoverability: what they mean to your applications