Abstract Modern distributed data management systems face a new challenge: how can autonomous, mutually distrusting parties cooperate safely and effectively? Addressing this challenge brings up familiar questions from classical systems: to combine multiple steps into single atomic action, recover failures, synchronize concurrent access data. Nevertheless, each of these issues requires rethinking...