Developers are increasingly choosing datastores that sacrifice strong consistency guarantees in exchange for improved performance and availability. Unfortunately, writing reliable distributed programs without the benefit of strong consistency can be very challenging.
In this talk, Recorded as BashoChats 004 in San Francisco, Neil Conway discusses work from his group at UC Berkeley that aims to make it easier to write distributed programs without relying on strong consistency. Bloom is a declarative programming language for distributed computing, while CALM is an analysis technique that identifies programs that are guaranteed to be eventually consistent. He then discussed his recent work on extending CALM to support a broader range of programs, drawing upon ideas from CRDTs.