Consistency Analysis in Bloom: A CALM and Collected Approach
Distributed programming has become a topic of widespread interest, and many programmers now wrestle with tradeoffs between data consistency, availability and latency. Distributed transactions are often rejected as an undesirable tradeoff today, but in the absence of transactions there are few concrete principles or tools to help programmers design and verify the correctness of their applications. The authors address this situation with the CALM principle, which connects the idea of distributed consistency to program tests for logical monotonicity. They then introduce Bloom, a distributed programming language that is amenable to high-level consistency analysis and encourages order-insensitive programming.