Enriched view synchrony: a programming paradigm for partitionable asynchronous distributed systems