
Lasp: A language for distributed, coordination-free programming - mrry
http://blog.acolyer.org/2015/08/17/lasp-a-language-for-distributed-coordination-free-programming/
======
rntz
Since CRDTs are just join-semilattices with a zero element, and the category
of join-semilattices with zero is a model for linear logic[1], I suspect that
there may be an even cleaner way to write eventually consistent programs,
using a linear lambda calculus (or possibly a process calculus, since those
_also_ model linear logic). I've been looking into this area in my off-time
but haven't managed to get very far, perhaps because I still don't understand
category theory well enough. Nice to see there's demand for a language with
this property, though :).

[1] Linear logic's "tensor product" corresponds to tensor product of
semilattices; linear maps correspond to semilattice-morphisms with a pointwise
join operation. Linear "with" and "tensor sum" _both_ correspond to cartesian
product of semilattices. It's a rather degenerate model in this respect.

~~~
agentultra
There are languages built on join semi-lattices such as Bloom^L for writing
eventually consistent programs[0].

The idea being that logical monotonicity removes the need for co-ordination
and eventual consistency in the language can be guaranteed by co-ordination
around non-monotonic points.

If you like logic-based programming it's a rather interesting language to
research.

[0][https://webcache.googleusercontent.com/search?q=cache:gu5lBo...](https://webcache.googleusercontent.com/search?q=cache:gu5lBoQE2kkJ:www.bloom-
lang.net/calm/+&cd=1&hl=en&ct=clnk&gl=ca)

------
rdtsc
Will this be incorporated into Riak?

Some of the CRDT data types already are (if I understand correctly).

Or maybe this can be the base of a new type of database -- a CRDT only
database -- an eventually consistent database but which auto-resolves
conflicts between siblings and always converges to one value.

~~~
pspeter3
I've been thinking about a CRDT datastore for a while, especially one based on
the delta state paper. I've gotten tripped up on which features to
support/provide however.

