Distributed Eventually Consistent Computations

In Dynamo-style replication systems, such as Akka Cluster and Riak Core, distributed query execution can be hard to get right. To ensure that computations are highly-available and fault-tolerant, systems like these usually push the burden to the programmer to ensure that operations commute and idempotent, which provide resilience from ordering and replay anomalies. During this talk we look at applying two techniques together, deterministic dataflow programming and conflict-free replicated data types, to provide an alternative programming model which alleviates this burden. Using these techniques together not only eases this burden, but also provides additional benefits such as optimistic replication of computation results; trading lower latency for staler results; and incrementally updating computations.