Electric Clojure: Differential Dataflow for UI
The central problem in frontend UI development is remote, over-the-wire maintenance of rich frontend views over large backend collections. Electric Clojure is a reactive Clojure dialect for fullstack web development that uses a dataflow compiler to choreograph the frontend/backend boundary, so that the application programmer need not code all the frontend/backend plumbing by hand.
Efficient remote distribution of collections is achieved through a new incrementally maintained collection type based on streams of collection diffs, which Electric uses to efficiently distribute fine grained collection updates to remote subscriptions by streaming diff values through a websocket.
In this talk we will demonstrate by live example how Electric Clojure and its differential collections let us build rich, interactive web products that arbitrarily interweave frontend and backend processes in a choreographed high performance dance, all without losing Clojure's dead-simple functional-lite composition model that anybody can understand.