The relational model has long been the domain of databases, but hidden beneath the awkward, non-compositional syntax of SQL lies the relational algebra, an elegant and compact formalism with powerful implications for distributed application design. Because relational models don't rely on pointers and complex object graphs, it's easy to work with them across network boundaries. All data can be represented as sets of scalar-valued tuples, which are easy to encode in JSON, and all model operations can be expressed in terms of create, update, and destroy, which are compatible with REST.
In this talk, I'll introduce two symbiotic libraries that leverage these properties to enable elegant client/server web applications. On the server, there's Unison, with an API similar to ActiveRecord's, but more general. In addition to has_many and friends, Unison adds relates_to_many and relates_to_one, allowing custom associations to be constructed through the composition of relational operators. For the browser, I'll introduce June, which offers a JavaScript version of the same API, along with a relational object-store, and I'll demonstrate how June clients can securely pull arbitrary datasets from a Unison-based server, treating it like a relational database. We'll also explore the nexus of the relational model with event-driven programming and the actor model of concurrent computation.
Speakers: Nathan Sobo

Recent Videos RSS

Add to Favorites


No Response(s) to this entry
Subscribe to comments with RSS.